package ru.ipo.dces.plugins.admin.packetregistration.passwordgenerator;

import java.util.*;

/**
 * Created by IntelliJ IDEA.
 * User: ilya
 * Date: 13.06.11
 * Time: 13:20
 */
public class PasswordGenerator3D extends PasswordGenerator {

    private static final HashMap<String, Integer> map = new HashMap<String, Integer>();

    static {
        map.put("rgy", 4);
        map.put("`jo", 27);
        map.put("rgu", 11);
        map.put("rhe", 3);
        map.put("`ju", 158);
        map.put("jec", 16);
        map.put("rha", 16);
        map.put("jee", 1);
        map.put("`ka", 4);
        map.put("jer", 3);
        map.put("jel", 7);
        map.put("rhi", 1);
        map.put("jen", 1);
        map.put("`ki", 53);
        map.put("jew", 3);
        map.put("`kh", 2);
        map.put("jes", 3);
        map.put("`ke", 37);
        map.put("jet", 4);
        map.put("rho", 1);
        map.put("`in", 1208);
        map.put("`im", 131);
        map.put("`io", 3);
        map.put("`il", 15);
        map.put("rfu", 14);
        map.put("`ix", 1);
        map.put("rga", 10);
        map.put("`ir", 26);
        map.put("`it", 1027);
        map.put("`is", 354);
        map.put("rgl", 22);
        map.put("rgi", 8);
        map.put("`ja", 22);
        map.put("rgg", 4);
        map.put("rgh", 1);
        map.put("rge", 60);
        map.put("rgs", 1);
        map.put("rgr", 3);
        map.put("`ji", 1);
        map.put("rgo", 2);
        map.put("`je", 19);
        map.put("ret", 60);
        map.put("`lo", 357);
        map.put("res", 288);
        map.put("rev", 31);
        map.put("reu", 1);
        map.put("`ll", 47);
        map.put("rew", 21);
        map.put("rey", 12);
        map.put("`lu", 58);
        map.put("rfa", 16);
        map.put("`ly", 17);
        map.put("rfe", 26);
        map.put("`mc", 4);
        map.put("`ma", 532);
        map.put("`me", 318);
        map.put("rfo", 4);
        map.put("`mi", 270);
        map.put("`kl", 1);
        map.put("rds", 76);
        map.put("`kn", 190);
        map.put("rdr", 1);
        map.put("`kr", 2);
        map.put("reb", 3);
        map.put("rea", 362);
        map.put("ree", 140);
        map.put("ref", 71);
        map.put("rec", 86);
        map.put("red", 317);
        map.put("rei", 5);
        map.put("`la", 186);
        map.put("reg", 20);
        map.put("reh", 9);
        map.put("rem", 54);
        map.put("ren", 75);
        map.put("`le", 201);
        map.put("rek", 1);
        map.put("rel", 77);
        map.put("req", 8);
        map.put("`li", 425);
        map.put("rer", 3);
        map.put("reo", 1);
        map.put("rep", 49);
        map.put("jac", 3);
        map.put("`fu", 82);
        map.put("`fr", 256);
        map.put("rda", 5);
        map.put("jab", 2);
        map.put("`fo", 884);
        map.put("`fl", 124);
        map.put("rcu", 17);
        map.put("`fj", 4);
        map.put("rcr", 2);
        map.put("`fi", 332);
        map.put("rct", 6);
        map.put("jat", 2);
        map.put("rdo", 6);
        map.put("`ge", 131);
        map.put("rdn", 1);
        map.put("`ga", 227);
        map.put("jar", 1);
        map.put("rdl", 10);
        map.put("rdi", 26);
        map.put("jan", 10);
        map.put("jam", 3);
        map.put("jag", 4);
        map.put("rde", 30);
        map.put("`eq", 17);
        map.put("`er", 45);
        map.put("`es", 9);
        map.put("`et", 14);
        map.put("`em", 196);
        map.put("`en", 183);
        map.put("`ep", 22);
        map.put("rby", 5);
        map.put("`ei", 18);
        map.put("`el", 47);
        map.put("`ee", 1);
        map.put("`ef", 27);
        map.put("rbs", 1);
        map.put("jaw", 1);
        map.put("`eg", 3);
        map.put("rco", 1);
        map.put("`fb", 5);
        map.put("`fe", 141);
        map.put("rcl", 3);
        map.put("`fa", 228);
        map.put("rci", 6);
        map.put("rch", 40);
        map.put("`ey", 54);
        map.put("rce", 17);
        map.put("`ev", 191);
        map.put("`eu", 4);
        map.put("`ex", 230);
        map.put("rca", 19);
        map.put("raw", 13);
        map.put("`hr", 6);
        map.put("rax", 3);
        map.put("ray", 8);
        map.put("raz", 8);
        map.put("`ht", 5);
        map.put("`hu", 132);
        map.put("rao", 11);
        map.put("rap", 25);
        map.put("`hi", 746);
        map.put("rar", 5);
        map.put("ras", 39);
        map.put("rat", 176);
        map.put("`ho", 250);
        map.put("rau", 6);
        map.put("rav", 34);
        map.put("`hm", 2);
        map.put("`id", 35);
        map.put("rbi", 9);
        map.put("`ic", 4);
        map.put("`ig", 9);
        map.put("rbl", 4);
        map.put("`if", 113);
        map.put("rbo", 6);
        map.put("rba", 2);
        map.put("`hy", 27);
        map.put("rbe", 6);
        map.put("`go", 360);
        map.put("`gp", 2);
        map.put("`gr", 205);
        map.put("`gu", 138);
        map.put("`gh", 10);
        map.put("`gi", 50);
        map.put("`gl", 80);
        map.put("`gn", 3);
        map.put("raj", 2);
        map.put("`ha", 780);
        map.put("rai", 77);
        map.put("rah", 4);
        map.put("rag", 24);
        map.put("`he", 1148);
        map.put("ran", 139);
        map.put("ram", 43);
        map.put("ral", 57);
        map.put("rak", 3);
        map.put("rab", 33);
        map.put("raa", 3);
        map.put("raf", 13);
        map.put("rad", 37);
        map.put("rac", 57);
        map.put("rpt", 1);
        map.put("rpr", 28);
        map.put("`by", 139);
        map.put("rps", 1);
        map.put("`br", 179);
        map.put("`bu", 389);
        map.put("rpo", 23);
        map.put("`ca", 355);
        map.put("rpe", 7);
        map.put("`bi", 101);
        map.put("`bb", 6);
        map.put("`be", 826);
        map.put("`bo", 184);
        map.put("rpl", 15);
        map.put("rpi", 1);
        map.put("`bl", 115);
        map.put("roq", 1);
        map.put("`aw", 97);
        map.put("ror", 23);
        map.put("`ax", 4);
        map.put("`au", 23);
        map.put("ros", 99);
        map.put("rot", 18);
        map.put("`av", 4);
        map.put("rom", 163);
        map.put("`as", 368);
        map.put("ron", 83);
        map.put("`at", 405);
        map.put("roo", 56);
        map.put("`ar", 657);
        map.put("rop", 40);
        map.put("roy", 5);
        map.put("`ba", 233);
        map.put("job", 11);
        map.put("roz", 3);
        map.put("jod", 2);
        map.put("rou", 302);
        map.put("rov", 15);
        map.put("row", 58);
        map.put("rox", 29);
        map.put("`az", 1);
        map.put("rob", 126);
        map.put("`ah", 20);
        map.put("roa", 40);
        map.put("`ag", 148);
        map.put("rod", 25);
        map.put("`af", 83);
        map.put("`ae", 1);
        map.put("roc", 19);
        map.put("`ad", 53);
        map.put("`ac", 108);
        map.put("`ab", 233);
        map.put("`aa", 1);
        map.put("roj", 4);
        map.put("`ap", 70);
        map.put("roi", 6);
        map.put("`an", 1719);
        map.put("rol", 51);
        map.put("`am", 60);
        map.put("rok", 7);
        map.put("`al", 388);
        map.put("rof", 3);
        map.put("rog", 31);
        map.put("`ai", 60);
        map.put("rnn", 1);
        map.put("`du", 45);
        map.put("rno", 7);
        map.put("rnl", 2);
        map.put("jou", 2);
        map.put("`dw", 1);
        map.put("rnm", 17);
        map.put("`dy", 1);
        map.put("rns", 13);
        map.put("joy", 9);
        map.put("rnt", 5);
        map.put("`ea", 147);
        map.put("`ec", 14);
        map.put("`ed", 32);
        map.put("`de", 396);
        map.put("joh", 2);
        map.put("`di", 336);
        map.put("jol", 1);
        map.put("jok", 4);
        map.put("rna", 13);
        map.put("joi", 4);
        map.put("`do", 498);
        map.put("jon", 1);
        map.put("rne", 83);
        map.put("jos", 1);
        map.put("jor", 16);
        map.put("rni", 29);
        map.put("`dr", 118);
        map.put("`cu", 73);
        map.put("rml", 19);
        map.put("rmm", 1);
        map.put("rmo", 10);
        map.put("`cy", 11);
        map.put("rmp", 2);
        map.put("rms", 23);
        map.put("rmt", 1);
        map.put("rmu", 2);
        map.put("rmy", 2);
        map.put("`da", 143);
        map.put("`ce", 40);
        map.put("`ci", 34);
        map.put("`ch", 150);
        map.put("rma", 37);
        map.put("`cl", 120);
        map.put("rme", 26);
        map.put("rmh", 2);
        map.put("`cr", 158);
        map.put("`co", 828);
        map.put("rmi", 15);
        map.put("rly", 65);
        map.put("rls", 2);
        map.put("rlo", 10);
        map.put("jis", 1);
        map.put("rli", 9);
        map.put("rlf", 1);
        map.put("jik", 11);
        map.put("rld", 25);
        map.put("rle", 13);
        map.put("rky", 1);
        map.put("rks", 10);
        map.put("rkn", 4);
        map.put("rkm", 1);
        map.put("rki", 9);
        map.put("rkl", 5);
        map.put("rke", 28);
        map.put("rka", 9);
        map.put("``y", 1050);
        map.put("``x", 13);
        map.put("``z", 242);
        map.put("``q", 150);
        map.put("``p", 5973);
        map.put("``s", 4771);
        map.put("``r", 1037);
        map.put("``u", 596);
        map.put("``t", 8176);
        map.put("``w", 3407);
        map.put("``v", 512);
        map.put("``h", 3097);
        map.put("``i", 3563);
        map.put("``j", 227);
        map.put("``k", 289);
        map.put("``l", 1296);
        map.put("``m", 1816);
        map.put("``n", 998);
        map.put("``o", 3025);
        map.put("riz", 8);
        map.put("``a", 5780);
        map.put("``b", 2178);
        map.put("``c", 1771);
        map.put("rix", 5);
        map.put("``d", 1607);
        map.put("``e", 1255);
        map.put("``f", 2056);
        map.put("``g", 1208);
        map.put("rip", 26);
        map.put("rio", 48);
        map.put("rit", 61);
        map.put("ris", 59);
        map.put("riv", 46);
        map.put("riu", 9);
        map.put("rig", 91);
        map.put("ril", 108);
        map.put("rik", 3);
        map.put("rin", 141);
        map.put("rim", 19);
        map.put("ria", 30);
        map.put("rib", 42);
        map.put("ric", 50);
        map.put("rid", 41);
        map.put("rie", 155);
        map.put("rif", 15);
        map.put("rhy", 3);
        map.put("itn", 1);
        map.put("itl", 102);
        map.put("rwe", 2);
        map.put("itr", 3);
        map.put("`za", 223);
        map.put("rwi", 5);
        map.put("ito", 10);
        map.put("rwo", 1);
        map.put("itu", 17);
        map.put("itt", 84);
        map.put("`ze", 3);
        map.put("its", 127);
        map.put("ity", 111);
        map.put("`zi", 3);
        map.put("`zo", 2);
        map.put("isk", 7);
        map.put("ism", 8);
        map.put("`zz", 4);
        map.put("isl", 10);
        map.put("iso", 28);
        map.put("isn", 19);
        map.put("isq", 1);
        map.put("isp", 20);
        map.put("iss", 30);
        map.put("isu", 3);
        map.put("ist", 181);
        map.put("isv", 1);
        map.put("ita", 36);
        map.put("itc", 76);
        map.put("ite", 173);
        map.put("ryb", 3);
        map.put("itf", 1);
        map.put("ith", 347);
        map.put("iti", 77);
        map.put("rui", 9);
        map.put("rug", 21);
        map.put("rue", 3);
        map.put("rud", 6);
        map.put("ruc", 39);
        map.put("rup", 10);
        map.put("run", 50);
        map.put("rum", 20);
        map.put("rul", 6);
        map.put("ivu", 1);
        map.put("rux", 1);
        map.put("iwa", 2);
        map.put("rus", 32);
        map.put("rut", 10);
        map.put("rva", 6);
        map.put("rvi", 66);
        map.put("ius", 9);
        map.put("iur", 1);
        map.put("rve", 28);
        map.put("ium", 4);
        map.put("rvo", 23);
        map.put("iva", 14);
        map.put("ivi", 25);
        map.put("rwa", 30);
        map.put("ive", 272);
        map.put("rsi", 24);
        map.put("ipp", 27);
        map.put("`va", 47);
        map.put("ipu", 1);
        map.put("rso", 11);
        map.put("rsp", 17);
        map.put("ips", 18);
        map.put("ipt", 13);
        map.put("`ve", 233);
        map.put("ipi", 3);
        map.put("rsc", 1);
        map.put("`uu", 1);
        map.put("rsd", 7);
        map.put("rsa", 7);
        map.put("iph", 3);
        map.put("ipm", 5);
        map.put("rsh", 10);
        map.put("rse", 130);
        map.put("ipl", 8);
        map.put("`vo", 153);
        map.put("rta", 39);
        map.put("`vr", 15);
        map.put("rst", 100);
        map.put("`vi", 57);
        map.put("`vl", 2);
        map.put("rsu", 6);
        map.put("ion", 520);
        map.put("`wa", 1034);
        map.put("rtl", 19);
        map.put("rtm", 4);
        map.put("`we", 574);
        map.put("ior", 8);
        map.put("ios", 4);
        map.put("rto", 1);
        map.put("iot", 2);
        map.put("iou", 71);
        map.put("rte", 33);
        map.put("rtf", 26);
        map.put("rth", 465);
        map.put("iol", 9);
        map.put("rti", 68);
        map.put("`wr", 62);
        map.put("ipb", 2);
        map.put("ipa", 2);
        map.put("`wo", 341);
        map.put("rub", 10);
        map.put("ipe", 9);
        map.put("rts", 19);
        map.put("`wi", 508);
        map.put("`wh", 879);
        map.put("rtu", 16);
        map.put("rtw", 1);
        map.put("`wm", 1);
        map.put("rty", 30);
        map.put("irs", 63);
        map.put("irt", 24);
        map.put("irr", 32);
        map.put("iro", 17);
        map.put("irp", 1);
        map.put("irm", 11);
        map.put("`ww", 5);
        map.put("irl", 29);
        map.put("iri", 21);
        map.put("isi", 52);
        map.put("ish", 119);
        map.put("isg", 5);
        map.put("isf", 11);
        map.put("ise", 98);
        map.put("isd", 1);
        map.put("isc", 27);
        map.put("isb", 2);
        map.put("`xm", 10);
        map.put("isa", 11);
        map.put("`xl", 3);
        map.put("iry", 6);
        map.put("iqu", 8);
        map.put("rrm", 1);
        map.put("`ye", 268);
        map.put("rro", 26);
        map.put("rrh", 1);
        map.put("rri", 107);
        map.put("`ya", 12);
        map.put("rre", 37);
        map.put("rrg", 3);
        map.put("rra", 14);
        map.put("ire", 77);
        map.put("`yu", 1);
        map.put("irg", 1);
        map.put("irb", 1);
        map.put("rry", 36);
        map.put("ira", 8);
        map.put("ird", 18);
        map.put("irc", 36);
        map.put("rru", 9);
        map.put("`yo", 769);
        map.put("rrp", 1);
        map.put("rrs", 1);
        map.put("rrr", 15);
        map.put("`re", 582);
        map.put("`rh", 4);
        map.put("sac", 1);
        map.put("`ri", 72);
        map.put("sad", 8);
        map.put("saf", 13);
        map.put("sag", 18);
        map.put("sai", 688);
        map.put("sak", 5);
        map.put("sal", 11);
        map.put("sam", 24);
        map.put("`ro", 177);
        map.put("`qu", 149);
        map.put("`ra", 136);
        map.put("sba", 1);
        map.put("`sc", 106);
        map.put("`se", 559);
        map.put("`sf", 2);
        map.put("`sh", 425);
        map.put("`si", 264);
        map.put("`sk", 43);
        map.put("`sl", 148);
        map.put("`sm", 110);
        map.put("`sn", 16);
        map.put("`so", 539);
        map.put("`sp", 216);
        map.put("sbn", 2);
        map.put("`sq", 30);
        map.put("`sr", 4);
        map.put("sap", 7);
        map.put("`ru", 61);
        map.put("san", 66);
        map.put("sau", 13);
        map.put("sat", 52);
        map.put("sas", 7);
        map.put("sar", 4);
        map.put("say", 76);
        map.put("saw", 9);
        map.put("sav", 10);
        map.put("`sa", 911);
        map.put("`th", 5298);
        map.put("`ti", 264);
        map.put("`te", 175);
        map.put("`tr", 278);
        map.put("`to", 1489);
        map.put("`sy", 27);
        map.put("`sw", 40);
        map.put("`su", 333);
        map.put("`st", 575);
        map.put("`ss", 1);
        map.put("`ta", 148);
        map.put("`ul", 18);
        map.put("`ug", 7);
        map.put("`ur", 12);
        map.put("`us", 105);
        map.put("`ut", 6);
        map.put("`un", 239);
        map.put("`up", 208);
        map.put("`ty", 5);
        map.put("`tu", 67);
        map.put("`tw", 116);
        map.put("`tv", 1);
        map.put("`ni", 57);
        map.put("`na", 75);
        map.put("`ne", 207);
        map.put("`mu", 138);
        map.put("`my", 108);
        map.put("`mo", 349);
        map.put("`mm", 2);
        map.put("ixt", 7);
        map.put("`mr", 35);
        map.put("`oh", 69);
        map.put("ixi", 1);
        map.put("`ol", 60);
        map.put("`ok", 23);
        map.put("`on", 684);
        map.put("`om", 5);
        map.put("ixa", 1);
        map.put("`ob", 28);
        map.put("`od", 21);
        map.put("`oc", 30);
        map.put("ixe", 4);
        map.put("`of", 1447);
        map.put("`ny", 1);
        map.put("`nn", 1);
        map.put("`no", 622);
        map.put("`nu", 31);
        map.put("`po", 203);
        map.put("`pl", 243);
        map.put("`pi", 81);
        map.put("`ph", 45);
        map.put("`pe", 173);
        map.put("ryw", 1);
        map.put("`pa", 294);
        map.put("ryt", 24);
        map.put("ryo", 17);
        map.put("ryp", 2);
        map.put("`oz", 2);
        map.put("izz", 6);
        map.put("`ow", 40);
        map.put("`ox", 1);
        map.put("izu", 2);
        map.put("`ou", 245);
        map.put("`ov", 73);
        map.put("`os", 1);
        map.put("`ot", 84);
        map.put("`or", 135);
        map.put("ryi", 38);
        map.put("`oo", 4);
        map.put("`op", 57);
        map.put("izo", 4);
        map.put("izi", 2);
        map.put("`qe", 1);
        map.put("ize", 49);
        map.put("iza", 12);
        map.put("`py", 2);
        map.put("`pu", 121);
        map.put("`pr", 387);
        map.put("`ps", 1);
        map.put("kii", 3);
        map.put("sha", 73);
        map.put("kim", 1);
        map.put("kil", 11);
        map.put("sgu", 4);
        map.put("kia", 1);
        map.put("kic", 7);
        map.put("kie", 17);
        map.put("kid", 16);
        map.put("shm", 9);
        map.put("sho", 165);
        map.put("shr", 18);
        map.put("kin", 167);
        map.put("she", 155);
        map.put("kip", 3);
        map.put("shh", 3);
        map.put("shi", 140);
        map.put("kis", 2);
        map.put("kit", 2);
        map.put("shl", 1);
        map.put("sfu", 7);
        map.put("sfy", 1);
        map.put("sgr", 1);
        map.put("siz", 10);
        map.put("siv", 14);
        map.put("six", 30);
        map.put("kgr", 1);
        map.put("sie", 1);
        map.put("sid", 107);
        map.put("sic", 28);
        map.put("sib", 41);
        map.put("sia", 9);
        map.put("khe", 1);
        map.put("kha", 2);
        map.put("shu", 17);
        map.put("sit", 62);
        map.put("sir", 18);
        map.put("sis", 163);
        map.put("sin", 110);
        map.put("sio", 92);
        map.put("sil", 63);
        map.put("sim", 49);
        map.put("sif", 1);
        map.put("sig", 55);
        map.put("scr", 75);
        map.put("scu", 18);
        map.put("scw", 1);
        map.put("keb", 1);
        map.put("scy", 1);
        map.put("ked", 247);
        map.put("kee", 31);
        map.put("sda", 8);
        map.put("kel", 6);
        map.put("ken", 20);
        map.put("kep", 4);
        map.put("kes", 12);
        map.put("ker", 82);
        map.put("ket", 28);
        map.put("kew", 1);
        map.put("key", 7);
        map.put("sdo", 1);
        map.put("sbr", 4);
        map.put("sbu", 1);
        map.put("sca", 18);
        map.put("sce", 25);
        map.put("sci", 15);
        map.put("sch", 4);
        map.put("sco", 25);
        map.put("scl", 7);
        map.put("sev", 47);
        map.put("sex", 3);
        map.put("ser", 105);
        map.put("ses", 45);
        map.put("set", 35);
        map.put("sfa", 6);
        map.put("sfi", 4);
        map.put("sfe", 1);
        map.put("sfo", 1);
        map.put("sea", 60);
        map.put("sei", 4);
        map.put("seh", 3);
        map.put("kdo", 1);
        map.put("seg", 1);
        map.put("sef", 6);
        map.put("see", 164);
        map.put("sed", 182);
        map.put("sec", 165);
        map.put("seq", 6);
        map.put("sep", 5);
        map.put("sen", 79);
        map.put("sem", 15);
        map.put("sel", 170);
        map.put("kra", 1);
        map.put("spu", 3);
        map.put("kre", 1);
        map.put("spo", 22);
        map.put("spr", 14);
        map.put("sph", 22);
        map.put("spe", 139);
        map.put("spl", 18);
        map.put("spi", 32);
        map.put("spa", 94);
        map.put("sou", 62);
        map.put("soz", 1);
        map.put("sol", 52);
        map.put("som", 199);
        map.put("son", 54);
        map.put("soo", 17);
        map.put("sop", 9);
        map.put("sor", 51);
        map.put("soe", 2);
        map.put("sod", 19);
        map.put("sog", 1);
        map.put("sof", 15);
        map.put("kri", 1);
        map.put("soa", 4);
        map.put("soc", 6);
        map.put("sob", 2);
        map.put("kpa", 1);
        map.put("kou", 1);
        map.put("kon", 8);
        map.put("src", 4);
        map.put("squ", 31);
        map.put("sli", 58);
        map.put("slo", 26);
        map.put("kna", 7);
        map.put("slu", 12);
        map.put("sky", 30);
        map.put("sla", 47);
        map.put("sle", 23);
        map.put("ski", 19);
        map.put("sku", 2);
        map.put("kne", 48);
        map.put("ska", 1);
        map.put("kno", 152);
        map.put("ske", 35);
        map.put("snu", 2);
        map.put("sna", 11);
        map.put("sni", 1);
        map.put("snj", 1);
        map.put("sne", 3);
        map.put("smo", 14);
        map.put("kma", 2);
        map.put("sms", 2);
        map.put("kly", 21);
        map.put("smu", 3);
        map.put("kle", 6);
        map.put("sma", 70);
        map.put("kla", 1);
        map.put("sly", 68);
        map.put("smi", 26);
        map.put("kli", 3);
        map.put("sme", 8);
        map.put("swo", 3);
        map.put("swi", 20);
        map.put("swe", 37);
        map.put("swu", 4);
        map.put("syc", 2);
        map.put("syn", 3);
        map.put("sys", 18);
        map.put("sym", 6);
        map.put("jus", 143);
        map.put("juv", 1);
        map.put("juk", 1);
        map.put("jun", 2);
        map.put("jum", 8);
        map.put("ssf", 7);
        map.put("sse", 112);
        map.put("ssc", 1);
        map.put("ssa", 21);
        map.put("sso", 3);
        map.put("ssl", 12);
        map.put("ssm", 2);
        map.put("ssi", 105);
        map.put("ssu", 19);
        map.put("jui", 1);
        map.put("jug", 1);
        map.put("jud", 3);
        map.put("ste", 225);
        map.put("stf", 2);
        map.put("sta", 306);
        map.put("stb", 1);
        map.put("stm", 4);
        map.put("sto", 146);
        map.put("sti", 142);
        map.put("stl", 38);
        map.put("stu", 65);
        map.put("zur", 2);
        map.put("stw", 1);
        map.put("str", 170);
        map.put("sts", 24);
        map.put("sua", 14);
        map.put("sty", 21);
        map.put("sud", 71);
        map.put("sue", 4);
        map.put("sub", 42);
        map.put("suc", 35);
        map.put("sui", 11);
        map.put("suf", 6);
        map.put("sug", 6);
        map.put("sul", 11);
        map.put("sum", 27);
        map.put("sup", 32);
        map.put("sun", 34);
        map.put("sus", 19);
        map.put("sur", 98);
        map.put("svo", 1);
        map.put("swa", 4);
        map.put("tai", 54);
        map.put("tak", 67);
        map.put("kbu", 1);
        map.put("tal", 106);
        map.put("kbo", 1);
        map.put("zzy", 2);
        map.put("taf", 2);
        map.put("tag", 9);
        map.put("tab", 34);
        map.put("tac", 14);
        map.put("kbi", 1);
        map.put("zzl", 6);
        map.put("zzi", 2);
        map.put("zze", 1);
        map.put("zza", 2);
        map.put("kat", 2);
        map.put("kap", 2);
        map.put("kak", 1);
        map.put("tba", 1);
        map.put("kaf", 1);
        map.put("kag", 2);
        map.put("tay", 6);
        map.put("kab", 9);
        map.put("tax", 4);
        map.put("zyi", 1);
        map.put("taw", 1);
        map.put("tau", 16);
        map.put("tat", 42);
        map.put("tas", 20);
        map.put("tar", 133);
        map.put("tap", 19);
        map.put("tan", 147);
        map.put("tam", 7);
        map.put("tch", 147);
        map.put("tcc", 1);
        map.put("tbo", 1);
        map.put("tbu", 1);
        map.put("tcr", 2);
        map.put("tco", 2);
        map.put("jyt", 1);
        map.put("bje", 9);
        map.put("biz", 3);
        map.put("bis", 2);
        map.put("bit", 60);
        map.put("bio", 1);
        map.put("bir", 15);
        map.put("bik", 1);
        map.put("bil", 54);
        map.put("bin", 33);
        map.put("big", 24);
        map.put("zed", 35);
        map.put("zeb", 1);
        map.put("blu", 20);
        map.put("bly", 64);
        map.put("blo", 26);
        map.put("ble", 259);
        map.put("bli", 62);
        map.put("bla", 50);
        map.put("zet", 1);
        map.put("zes", 1);
        map.put("zen", 4);
        map.put("zem", 1);
        map.put("zel", 1);
        map.put("zer", 19);
        map.put("ham", 15);
        map.put("han", 149);
        map.put("bod", 40);
        map.put("boa", 20);
        map.put("hap", 125);
        map.put("bob", 5);
        map.put("hai", 17);
        map.put("hak", 4);
        map.put("hal", 60);
        map.put("hau", 2);
        map.put("bol", 8);
        map.put("hav", 224);
        map.put("boi", 4);
        map.put("bog", 8);
        map.put("har", 64);
        map.put("has", 189);
        map.put("hat", 972);
        map.put("haf", 1);
        map.put("hae", 2);
        map.put("hag", 2);
        map.put("hab", 9);
        map.put("haa", 5);
        map.put("had", 317);
        map.put("hac", 1);
        map.put("hbo", 2);
        map.put("hbr", 1);
        map.put("haz", 4);
        map.put("zab", 2);
        map.put("pbo", 2);
        map.put("par", 136);
        map.put("pat", 42);
        map.put("pas", 64);
        map.put("pav", 6);
        map.put("pau", 26);
        map.put("pay", 3);
        map.put("pac", 88);
        map.put("pad", 2);
        map.put("pag", 10);
        map.put("pae", 2);
        map.put("pal", 9);
        map.put("pai", 18);
        map.put("pap", 9);
        map.put("pan", 60);
        map.put("bon", 9);
        map.put("bom", 2);
        map.put("zag", 1);
        map.put("boo", 75);
        map.put("bor", 12);
        map.put("zam", 1);
        map.put("bot", 67);
        map.put("hda", 1);
        map.put("bov", 10);
        map.put("bou", 204);
        map.put("zar", 8);
        map.put("box", 3);
        map.put("bow", 12);
        map.put("zap", 222);
        map.put("boy", 3);
        map.put("zat", 7);
        map.put("bbl", 15);
        map.put("hel", 59);
        map.put("hei", 97);
        map.put("phe", 29);
        map.put("bbo", 2);
        map.put("bbi", 6);
        map.put("hee", 30);
        map.put("pha", 143);
        map.put("hef", 2);
        map.put("hec", 5);
        map.put("hed", 154);
        map.put("bbe", 19);
        map.put("hea", 207);
        map.put("bbc", 6);
        map.put("phu", 1);
        map.put("hey", 306);
        map.put("zoo", 1);
        map.put("bby", 3);
        map.put("phr", 4);
        map.put("hev", 1);
        map.put("zon", 7);
        map.put("het", 9);
        map.put("pho", 248);
        map.put("hes", 56);
        map.put("zoi", 1);
        map.put("her", 625);
        map.put("heq", 1);
        map.put("heo", 12);
        map.put("hen", 203);
        map.put("phi", 22);
        map.put("hem", 181);
        map.put("bam", 1);
        map.put("ban", 33);
        map.put("bal", 12);
        map.put("bag", 1);
        map.put("baf", 1);
        map.put("bac", 93);
        map.put("bad", 10);
        map.put("bab", 74);
        map.put("bay", 7);
        map.put("baw", 4);
        map.put("bat", 21);
        map.put("bas", 14);
        map.put("bar", 74);
        map.put("hgg", 1);
        map.put("pew", 2);
        map.put("pex", 2);
        map.put("peu", 1);
        map.put("bdi", 1);
        map.put("pfu", 3);
        map.put("bea", 31);
        map.put("bdu", 1);
        map.put("hhh", 15);
        map.put("hhi", 45);
        map.put("pea", 65);
        map.put("peb", 1);
        map.put("pec", 59);
        map.put("ped", 158);
        map.put("hhg", 1);
        map.put("pen", 119);
        map.put("peo", 58);
        map.put("per", 194);
        map.put("pet", 15);
        map.put("pes", 10);
        map.put("pef", 4);
        map.put("pee", 22);
        map.put("hhr", 1);
        map.put("pel", 10);
        map.put("pek", 2);
        map.put("hig", 20);
        map.put("pla", 231);
        map.put("hif", 4);
        map.put("hie", 6);
        map.put("hid", 8);
        map.put("hic", 159);
        map.put("hip", 98);
        map.put("hio", 8);
        map.put("hin", 486);
        map.put("pli", 23);
        map.put("him", 247);
        map.put("hil", 56);
        map.put("hik", 59);
        map.put("ple", 175);
        map.put("hiv", 10);
        map.put("his", 706);
        map.put("plo", 16);
        map.put("hit", 91);
        map.put("hir", 31);
        map.put("ply", 41);
        map.put("plu", 18);
        map.put("bei", 59);
        map.put("beh", 29);
        map.put("beg", 52);
        map.put("bef", 48);
        map.put("bee", 140);
        map.put("bed", 26);
        map.put("bec", 102);
        map.put("ber", 67);
        map.put("ben", 38);
        map.put("bem", 1);
        map.put("bel", 35);
        map.put("bey", 3);
        map.put("zli", 1);
        map.put("bew", 2);
        map.put("bes", 25);
        map.put("zle", 5);
        map.put("bet", 75);
        map.put("zie", 1);
        map.put("zic", 1);
        map.put("bia", 1);
        map.put("zin", 22);
        map.put("bic", 8);
        map.put("bid", 3);
        map.put("zil", 7);
        map.put("bie", 2);
        map.put("hle", 1);
        map.put("phy", 20);
        map.put("zip", 2);
        map.put("zis", 1);
        map.put("hli", 2);
        map.put("pid", 18);
        map.put("pic", 41);
        map.put("pie", 14);
        map.put("pig", 4);
        map.put("pil", 16);
        map.put("pin", 53);
        map.put("hly", 22);
        map.put("pip", 4);
        map.put("piq", 1);
        map.put("pir", 20);
        map.put("pis", 20);
        map.put("pit", 13);
        map.put("hma", 15);
        map.put("pow", 25);
        map.put("gme", 3);
        map.put("por", 61);
        map.put("pop", 17);
        map.put("poo", 8);
        map.put("pov", 2);
        map.put("pou", 14);
        map.put("pot", 7);
        map.put("gly", 49);
        map.put("pos", 76);
        map.put("poi", 66);
        map.put("glo", 14);
        map.put("pog", 2);
        map.put("pon", 24);
        map.put("pok", 7);
        map.put("pol", 26);
        map.put("gle", 71);
        map.put("poe", 16);
        map.put("gli", 18);
        map.put("poc", 7);
        map.put("ppy", 12);
        map.put("yuu", 1);
        map.put("gla", 70);
        map.put("yum", 1);
        map.put("ppr", 13);
        map.put("ppi", 15);
        map.put("ppl", 10);
        map.put("ppo", 30);
        map.put("ppa", 18);
        map.put("ppe", 167);
        map.put("yuc", 1);
        map.put("gog", 3);
        map.put("goe", 5);
        map.put("god", 23);
        map.put("gob", 2);
        map.put("goa", 1);
        map.put("yti", 1);
        map.put("yth", 73);
        map.put("gno", 9);
        map.put("pme", 6);
        map.put("ytc", 1);
        map.put("gnm", 1);
        map.put("gnn", 1);
        map.put("gni", 18);
        map.put("gne", 19);
        map.put("yst", 27);
        map.put("gna", 16);
        map.put("ysu", 1);
        map.put("yso", 1);
        map.put("pno", 2);
        map.put("ysi", 16);
        map.put("yse", 15);
        map.put("psy", 2);
        map.put("yro", 1);
        map.put("pta", 10);
        map.put("pse", 14);
        map.put("gpp", 2);
        map.put("psi", 3);
        map.put("psh", 1);
        map.put("yre", 1);
        map.put("ptu", 4);
        map.put("pty", 43);
        map.put("pub", 47);
        map.put("pud", 1);
        map.put("pte", 50);
        map.put("goi", 73);
        map.put("pti", 19);
        map.put("gol", 35);
        map.put("pth", 3);
        map.put("goo", 65);
        map.put("gon", 104);
        map.put("ptl", 3);
        map.put("gos", 2);
        map.put("pto", 2);
        map.put("gor", 2);
        map.put("gou", 1);
        map.put("got", 77);
        map.put("pts", 11);
        map.put("gov", 22);
        map.put("car", 74);
        map.put("ypn", 2);
        map.put("cas", 32);
        map.put("cat", 50);
        map.put("cau", 89);
        map.put("can", 122);
        map.put("ypi", 2);
        map.put("yph", 2);
        map.put("cap", 20);
        map.put("ypu", 1);
        map.put("pra", 15);
        map.put("ypt", 1);
        map.put("gsh", 1);
        map.put("gsi", 1);
        map.put("cav", 3);
        map.put("cay", 1);
        map.put("cac", 1);
        map.put("cab", 25);
        map.put("gro", 44);
        map.put("cad", 2);
        map.put("yow", 1);
        map.put("ype", 23);
        map.put("gry", 10);
        map.put("caj", 1);
        map.put("cam", 56);
        map.put("cal", 130);
        map.put("cag", 5);
        map.put("ypa", 9);
        map.put("gru", 6);
        map.put("caf", 1);
        map.put("gra", 118);
        map.put("yor", 3);
        map.put("you", 759);
        map.put("gri", 34);
        map.put("yoo", 6);
        map.put("yon", 35);
        map.put("gre", 121);
        map.put("cbe", 1);
        map.put("pri", 57);
        map.put("pre", 200);
        map.put("pro", 249);
        map.put("gto", 4);
        map.put("gug", 1);
        map.put("gui", 68);
        map.put("bri", 65);
        map.put("bro", 69);
        map.put("gum", 8);
        map.put("gul", 9);
        map.put("bra", 45);
        map.put("gua", 29);
        map.put("bre", 31);
        map.put("gue", 35);
        map.put("gst", 3);
        map.put("gsn", 1);
        map.put("gso", 1);
        map.put("gsl", 1);
        map.put("bru", 20);
        map.put("gsp", 3);
        map.put("gth", 12);
        map.put("bsi", 1);
        map.put("gti", 1);
        map.put("bso", 9);
        map.put("bsc", 4);
        map.put("bse", 11);
        map.put("pur", 15);
        map.put("pus", 9);
        map.put("put", 128);
        map.put("pum", 1);
        map.put("pun", 10);
        map.put("gvu", 1);
        map.put("bsu", 1);
        map.put("pul", 21);
        map.put("bst", 8);
        map.put("puf", 1);
        map.put("btl", 7);
        map.put("bti", 5);
        map.put("puz", 4);
        map.put("btf", 2);
        map.put("gwa", 2);
        map.put("bte", 1);
        map.put("bub", 4);
        map.put("guy", 28);
        map.put("gur", 23);
        map.put("gus", 4);
        map.put("bts", 2);
        map.put("gun", 7);
        map.put("bur", 23);
        map.put("bul", 31);
        map.put("pwa", 3);
        map.put("bun", 7);
        map.put("bum", 5);
        map.put("bug", 9);
        map.put("bui", 34);
        map.put("bud", 2);
        map.put("but", 258);
        map.put("bus", 29);
        map.put("buz", 5);
        map.put("buy", 4);
        map.put("bvi", 6);
        map.put("yyu", 1);
        map.put("yyy", 5);
        map.put("yxa", 1);
        map.put("pyr", 1);
        map.put("pyt", 1);
        map.put("yxi", 5);
        map.put("yxo", 1);
        map.put("ywe", 1);
        map.put("ywa", 12);
        map.put("bye", 2);
        map.put("ywh", 6);
        map.put("byp", 9);
        map.put("aka", 2);
        map.put("iam", 1);
        map.put("ial", 68);
        map.put("iao", 1);
        map.put("ian", 105);
        map.put("ake", 113);
        map.put("akd", 1);
        map.put("ias", 8);
        map.put("iar", 9);
        map.put("aki", 36);
        map.put("iat", 15);
        map.put("ych", 2);
        map.put("aji", 11);
        map.put("ajo", 13);
        map.put("ybo", 10);
        map.put("iab", 6);
        map.put("iac", 3);
        map.put("ibl", 72);
        map.put("ibi", 6);
        map.put("ibr", 1);
        map.put("aje", 5);
        map.put("ibu", 7);
        map.put("ycl", 6);
        map.put("ail", 44);
        map.put("aim", 17);
        map.put("ain", 265);
        map.put("iba", 26);
        map.put("air", 99);
        map.put("ibb", 3);
        map.put("ais", 8);
        map.put("ait", 28);
        map.put("aiv", 1);
        map.put("ibe", 10);
        map.put("yea", 111);
        map.put("yeb", 5);
        map.put("aig", 18);
        map.put("aid", 697);
        map.put("aic", 2);
        map.put("yed", 28);
        map.put("ahm", 2);
        map.put("ydo", 1);
        map.put("ydr", 3);
        map.put("ahs", 1);
        map.put("aho", 1);
        map.put("ahe", 1);
        map.put("aha", 3);
        map.put("yes", 135);
        map.put("yer", 2);
        map.put("agl", 5);
        map.put("agm", 2);
        map.put("agg", 13);
        map.put("agh", 2);
        map.put("yel", 40);
        map.put("agi", 20);
        map.put("agr", 47);
        map.put("ags", 4);
        map.put("agu", 13);
        map.put("agn", 7);
        map.put("ago", 10);
        map.put("yet", 19);
        map.put("iet", 32);
        map.put("iev", 25);
        map.put("iew", 5);
        map.put("iel", 12);
        map.put("ien", 86);
        map.put("ier", 16);
        map.put("ies", 69);
        map.put("anx", 9);
        map.put("anw", 5);
        map.put("ied", 112);
        map.put("anu", 13);
        map.put("ief", 10);
        map.put("iek", 2);
        map.put("any", 183);
        map.put("ano", 52);
        map.put("ann", 38);
        map.put("ant", 216);
        map.put("ans", 75);
        map.put("iec", 9);
        map.put("anq", 1);
        map.put("ane", 160);
        map.put("anf", 4);
        map.put("ang", 100);
        map.put("ifu", 10);
        map.put("ani", 60);
        map.put("ank", 74);
        map.put("ify", 5);
        map.put("anl", 2);
        map.put("ifo", 1);
        map.put("ana", 19);
        map.put("ift", 39);
        map.put("anc", 109);
        map.put("and", 1495);
        map.put("amu", 3);
        map.put("iff", 41);
        map.put("ife", 69);
        map.put("ifl", 1);
        map.put("ifi", 26);
        map.put("amm", 22);
        map.put("aml", 1);
        map.put("amo", 28);
        map.put("amn", 3);
        map.put("amp", 16);
        map.put("ams", 14);
        map.put("icy", 1);
        map.put("ami", 23);
        map.put("icr", 7);
        map.put("ics", 21);
        map.put("ict", 26);
        map.put("ame", 161);
        map.put("icu", 41);
        map.put("amb", 18);
        map.put("ico", 4);
        map.put("amc", 1);
        map.put("ama", 26);
        map.put("ick", 114);
        map.put("icl", 6);
        map.put("aly", 8);
        map.put("ici", 28);
        map.put("ich", 158);
        map.put("alw", 28);
        map.put("icc", 1);
        map.put("alv", 1);
        map.put("alu", 7);
        map.put("ice", 178);
        map.put("alt", 17);
        map.put("als", 40);
        map.put("alr", 35);
        map.put("ica", 110);
        map.put("alp", 10);
        map.put("alo", 28);
        map.put("aln", 1);
        map.put("alm", 25);
        map.put("all", 634);
        map.put("alk", 67);
        map.put("alg", 4);
        map.put("ali", 68);
        map.put("ybe", 15);
        map.put("alc", 13);
        map.put("idu", 1);
        map.put("ald", 3);
        map.put("ale", 35);
        map.put("ids", 14);
        map.put("alf", 27);
        map.put("ala", 131);
        map.put("ido", 6);
        map.put("alb", 4);
        map.put("idn", 66);
        map.put("qed", 1);
        map.put("idl", 8);
        map.put("idi", 15);
        map.put("yaw", 4);
        map.put("aky", 2);
        map.put("idg", 25);
        map.put("aks", 1);
        map.put("yar", 7);
        map.put("ide", 252);
        map.put("akr", 1);
        map.put("idd", 12);
        map.put("akt", 1);
        map.put("idb", 1);
        map.put("yan", 3);
        map.put("ida", 11);
        map.put("akl", 5);
        map.put("aba", 6);
        map.put("abb", 14);
        map.put("abd", 1);
        map.put("abe", 6);
        map.put("abi", 64);
        map.put("abj", 2);
        map.put("abl", 143);
        map.put("iin", 3);
        map.put("abo", 207);
        map.put("abr", 4);
        map.put("abs", 14);
        map.put("abu", 1);
        map.put("aby", 4);
        map.put("aca", 3);
        map.put("aaa", 7);
        map.put("aal", 7);
        map.put("aar", 1);
        map.put("yle", 11);
        map.put("aau", 1);
        map.put("yli", 2);
        map.put("ylo", 1);
        map.put("ige", 21);
        map.put("iga", 3);
        map.put("ymb", 2);
        map.put("igh", 312);
        map.put("igi", 20);
        map.put("igg", 7);
        map.put("igu", 20);
        map.put("igr", 3);
        map.put("ymi", 2);
        map.put("igo", 3);
        map.put("ign", 51);
        map.put("ymp", 4);
        map.put("ymn", 1);
        map.put("ymo", 1);
        map.put("yna", 3);
        map.put("ync", 2);
        map.put("yni", 1);
        map.put("yne", 1);
        map.put("imo", 6);
        map.put("imm", 14);
        map.put("afo", 2);
        map.put("iml", 5);
        map.put("ims", 58);
        map.put("afr", 14);
        map.put("aft", 80);
        map.put("imp", 144);
        map.put("aff", 11);
        map.put("afe", 14);
        map.put("ime", 160);
        map.put("imi", 12);
        map.put("afk", 1);
        map.put("aga", 130);
        map.put("inc", 82);
        map.put("ind", 179);
        map.put("ina", 87);
        map.put("age", 71);
        map.put("inb", 1);
        map.put("imu", 9);
        map.put("yge", 1);
        map.put("aeo", 1);
        map.put("inn", 30);
        map.put("inp", 2);
        map.put("aem", 1);
        map.put("ino", 6);
        map.put("ael", 1);
        map.put("aer", 1);
        map.put("inq", 6);
        map.put("int", 361);
        map.put("ins", 126);
        map.put("inf", 48);
        map.put("ine", 207);
        map.put("inh", 4);
        map.put("aed", 2);
        map.put("ing", 1668);
        map.put("ini", 61);
        map.put("inl", 2);
        map.put("ink", 154);
        map.put("iod", 4);
        map.put("inu", 67);
        map.put("inv", 21);
        map.put("inw", 3);
        map.put("iny", 19);
        map.put("ado", 14);
        map.put("adr", 2);
        map.put("adl", 14);
        map.put("adn", 21);
        map.put("adm", 6);
        map.put("iki", 4);
        map.put("adj", 3);
        map.put("adi", 48);
        map.put("add", 28);
        map.put("ike", 178);
        map.put("adc", 9);
        map.put("adf", 2);
        map.put("ade", 71);
        map.put("ila", 5);
        map.put("yin", 101);
        map.put("adw", 2);
        map.put("ady", 27);
        map.put("ikt", 11);
        map.put("ads", 16);
        map.put("adt", 1);
        map.put("adu", 3);
        map.put("adv", 10);
        map.put("acq", 3);
        map.put("ilo", 12);
        map.put("aco", 1);
        map.put("ill", 322);
        map.put("acl", 2);
        map.put("ilk", 3);
        map.put("ack", 141);
        map.put("ilm", 3);
        map.put("aci", 12);
        map.put("ilh", 1);
        map.put("ach", 77);
        map.put("ili", 73);
        map.put("ace", 158);
        map.put("ild", 53);
        map.put("ilf", 1);
        map.put("acc", 28);
        map.put("acb", 1);
        map.put("ile", 158);
        map.put("ada", 11);
        map.put("ima", 39);
        map.put("imb", 8);
        map.put("acy", 3);
        map.put("ily", 43);
        map.put("ils", 15);
        map.put("act", 202);
        map.put("acu", 6);
        map.put("ilt", 26);
        map.put("ilu", 1);
        map.put("acr", 38);
        map.put("acs", 1);
        map.put("ilv", 8);
        map.put("azi", 24);
        map.put("hpl", 1);
        map.put("aze", 17);
        map.put("aza", 4);
        map.put("how", 119);
        map.put("xqu", 1);
        map.put("hpa", 1);
        map.put("hok", 3);
        map.put("hol", 71);
        map.put("hom", 21);
        map.put("hon", 26);
        map.put("hog", 1);
        map.put("azy", 7);
        map.put("hoi", 6);
        map.put("azz", 1);
        map.put("hos", 49);
        map.put("hot", 19);
        map.put("hou", 341);
        map.put("hov", 4);
        map.put("hoo", 36);
        map.put("hop", 17);
        map.put("hor", 69);
        map.put("axi", 9);
        map.put("xtr", 24);
        map.put("hob", 1);
        map.put("axo", 1);
        map.put("xtu", 2);
        map.put("hoe", 8);
        map.put("hod", 215);
        map.put("hoc", 10);
        map.put("xty", 2);
        map.put("hni", 3);
        map.put("awy", 1);
        map.put("axa", 3);
        map.put("xte", 7);
        map.put("hno", 2);
        map.put("hnu", 1);
        map.put("xti", 3);
        map.put("axe", 12);
        map.put("ayi", 22);
        map.put("ayl", 1);
        map.put("ays", 63);
        map.put("axy", 80);
        map.put("hme", 10);
        map.put("hmi", 2);
        map.put("ayb", 6);
        map.put("hmm", 2);
        map.put("hms", 1);
        map.put("aye", 14);
        map.put("hug", 28);
        map.put("huh", 4);
        map.put("huf", 2);
        map.put("huc", 1);
        map.put("hud", 6);
        map.put("hub", 1);
        map.put("hty", 7);
        map.put("htt", 5);
        map.put("hts", 14);
        map.put("htn", 3);
        map.put("htl", 28);
        map.put("qua", 52);
        map.put("hti", 9);
        map.put("hte", 19);
        map.put("htf", 6);
        map.put("hta", 1);
        map.put("xml", 10);
        map.put("hse", 1);
        map.put("xpr", 6);
        map.put("xpl", 32);
        map.put("hru", 20);
        map.put("quo", 6);
        map.put("xpa", 3);
        map.put("hrr", 1);
        map.put("xpe", 39);
        map.put("que", 50);
        map.put("hro", 138);
        map.put("qui", 135);
        map.put("xor", 2);
        map.put("hre", 42);
        map.put("xot", 4);
        map.put("hri", 12);
        map.put("xon", 1);
        map.put("xom", 1);
        map.put("hra", 6);
        map.put("hqu", 1);
        map.put("arh", 2);
        map.put("arg", 70);
        map.put("arf", 1);
        map.put("are", 314);
        map.put("ard", 194);
        map.put("arc", 48);
        map.put("arb", 15);
        map.put("hyd", 3);
        map.put("ara", 34);
        map.put("arp", 19);
        map.put("aro", 59);
        map.put("hym", 1);
        map.put("arn", 23);
        map.put("hyp", 21);
        map.put("arm", 75);
        map.put("arl", 48);
        map.put("ark", 70);
        map.put("ari", 42);
        map.put("xyg", 1);
        map.put("arv", 57);
        map.put("arr", 57);
        map.put("ars", 101);
        map.put("art", 651);
        map.put("asa", 20);
        map.put("ary", 36);
        map.put("asi", 152);
        map.put("ash", 49);
        map.put("asc", 2);
        map.put("ase", 59);
        map.put("aso", 26);
        map.put("asn", 24);
        map.put("asp", 23);
        map.put("ask", 58);
        map.put("asm", 7);
        map.put("asl", 3);
        map.put("aor", 11);
        map.put("aoz", 1);
        map.put("apa", 7);
        map.put("hwa", 15);
        map.put("ape", 58);
        map.put("api", 5);
        map.put("aph", 221);
        map.put("apl", 1);
        map.put("apo", 10);
        map.put("huo", 1);
        map.put("app", 157);
        map.put("hum", 45);
        map.put("hun", 47);
        map.put("hus", 15);
        map.put("aps", 28);
        map.put("apt", 52);
        map.put("hut", 15);
        map.put("hur", 371);
        map.put("ava", 9);
        map.put("auv", 1);
        map.put("auu", 1);
        map.put("aut", 29);
        map.put("avo", 8);
        map.put("avl", 1);
        map.put("avi", 55);
        map.put("ave", 304);
        map.put("awe", 3);
        map.put("awa", 87);
        map.put("avy", 9);
        map.put("aws", 3);
        map.put("awn", 10);
        map.put("awo", 1);
        map.put("awk", 9);
        map.put("xur", 2);
        map.put("awl", 22);
        map.put("awf", 1);
        map.put("awi", 2);
        map.put("ata", 17);
        map.put("asu", 15);
        map.put("ast", 198);
        map.put("ass", 134);
        map.put("asy", 10);
        map.put("atm", 8);
        map.put("atl", 4);
        map.put("atr", 8);
        map.put("ato", 31);
        map.put("ate", 296);
        map.put("atf", 1);
        map.put("atc", 59);
        map.put("ati", 226);
        map.put("ath", 169);
        map.put("auc", 14);
        map.put("xwa", 1);
        map.put("att", 111);
        map.put("hyt", 3);
        map.put("ats", 14);
        map.put("hys", 14);
        map.put("atu", 37);
        map.put("hyx", 6);
        map.put("aty", 2);
        map.put("aul", 5);
        map.put("aum", 2);
        map.put("aun", 6);
        map.put("aur", 20);
        map.put("aus", 110);
        map.put("aud", 4);
        map.put("aug", 24);
        map.put("ngn", 1);
        map.put("ngo", 4);
        map.put("ngi", 19);
        map.put("ngl", 83);
        map.put("ffs", 2);
        map.put("ffr", 5);
        map.put("ngu", 14);
        map.put("ngw", 2);
        map.put("ngr", 16);
        map.put("ngt", 17);
        map.put("ngs", 88);
        map.put("ffe", 62);
        map.put("ffa", 5);
        map.put("ffl", 2);
        map.put("nge", 91);
        map.put("ngf", 2);
        map.put("ffo", 4);
        map.put("ngh", 1);
        map.put("nga", 1);
        map.put("ffh", 1);
        map.put("ffi", 28);
        map.put("ngd", 1);
        map.put("fet", 4);
        map.put("fes", 8);
        map.put("fer", 40);
        map.put("few", 41);
        map.put("fee", 54);
        map.put("nha", 10);
        map.put("fec", 88);
        map.put("fed", 5);
        map.put("fea", 8);
        map.put("nhi", 1);
        map.put("fen", 7);
        map.put("fel", 36);
        map.put("fei", 1);
        map.put("nhe", 3);
        map.put("neg", 1);
        map.put("nei", 2);
        map.put("nel", 38);
        map.put("nen", 7);
        map.put("nep", 1);
        map.put("neo", 8);
        map.put("ner", 83);
        map.put("net", 142);
        map.put("nes", 81);
        map.put("nev", 41);
        map.put("neu", 3);
        map.put("fia", 2);
        map.put("ndy", 1);
        map.put("xer", 4);
        map.put("xes", 3);
        map.put("nea", 53);
        map.put("neb", 5);
        map.put("nec", 17);
        map.put("ned", 226);
        map.put("nee", 35);
        map.put("nef", 2);
        map.put("nfi", 27);
        map.put("xec", 2);
        map.put("nfo", 25);
        map.put("xed", 11);
        map.put("nfl", 2);
        map.put("nfr", 2);
        map.put("fha", 1);
        map.put("nfu", 6);
        map.put("ney", 13);
        map.put("new", 81);
        map.put("nex", 31);
        map.put("nfa", 7);
        map.put("nfe", 2);
        map.put("ncr", 10);
        map.put("nct", 12);
        map.put("nco", 36);
        map.put("nci", 53);
        map.put("xli", 3);
        map.put("ncl", 10);
        map.put("nce", 263);
        map.put("nch", 44);
        map.put("nca", 2);
        map.put("fbe", 1);
        map.put("ndu", 7);
        map.put("ndr", 29);
        map.put("nds", 86);
        map.put("ndp", 1);
        map.put("fau", 1);
        map.put("fav", 4);
        map.put("ndn", 1);
        map.put("fas", 44);
        map.put("ndo", 32);
        map.put("fat", 10);
        map.put("ndl", 20);
        map.put("far", 35);
        map.put("ndm", 2);
        map.put("ndk", 1);
        map.put("fam", 9);
        map.put("fan", 14);
        map.put("ndi", 53);
        map.put("fak", 2);
        map.put("fal", 25);
        map.put("nde", 167);
        map.put("fai", 34);
        map.put("ndb", 6);
        map.put("nda", 15);
        map.put("fad", 2);
        map.put("fac", 109);
        map.put("fab", 4);
        map.put("ncy", 16);
        map.put("ncu", 1);
        map.put("nak", 1);
        map.put("nal", 103);
        map.put("nam", 49);
        map.put("nan", 10);
        map.put("nap", 11);
        map.put("nar", 20);
        map.put("nac", 9);
        map.put("nae", 1);
        map.put("nag", 10);
        map.put("nai", 5);
        map.put("nab", 19);
        map.put("xis", 23);
        map.put("xit", 3);
        map.put("xil", 2);
        map.put("nbo", 6);
        map.put("nbl", 1);
        map.put("nbr", 1);
        map.put("xio", 2);
        map.put("xin", 5);
        map.put("xim", 4);
        map.put("xid", 2);
        map.put("xic", 6);
        map.put("xib", 2);
        map.put("nbe", 4);
        map.put("nbi", 1);
        map.put("nav", 5);
        map.put("nau", 2);
        map.put("nat", 57);
        map.put("nas", 7);
        map.put("naw", 1);
        map.put("eyb", 1);
        map.put("eya", 1);
        map.put("myx", 1);
        map.put("xcu", 8);
        map.put("myu", 1);
        map.put("myt", 1);
        map.put("mys", 20);
        map.put("xcr", 2);
        map.put("ext", 51);
        map.put("xcl", 9);
        map.put("eys", 8);
        map.put("eyn", 1);
        map.put("eyo", 3);
        map.put("eye", 54);
        map.put("exa", 29);
        map.put("ewy", 1);
        map.put("ews", 8);
        map.put("ewr", 2);
        map.put("ewu", 1);
        map.put("xch", 1);
        map.put("exo", 6);
        map.put("exp", 80);
        map.put("exq", 1);
        map.put("xci", 25);
        map.put("xce", 17);
        map.put("exi", 28);
        map.put("exc", 62);
        map.put("exe", 5);
        map.put("xat", 1);
        map.put("mww", 1);
        map.put("xam", 5);
        map.put("xan", 3);
        map.put("xac", 24);
        map.put("xag", 1);
        map.put("eze", 5);
        map.put("ezi", 2);
        map.put("eta", 23);
        map.put("wun", 4);
        map.put("nyb", 6);
        map.put("ete", 73);
        map.put("wur", 1);
        map.put("etc", 13);
        map.put("eti", 37);
        map.put("eth", 112);
        map.put("etn", 8);
        map.put("etm", 1);
        map.put("etl", 27);
        map.put("esp", 30);
        map.put("esn", 12);
        map.put("eso", 10);
        map.put("est", 208);
        map.put("esu", 14);
        map.put("ess", 237);
        map.put("esy", 1);
        map.put("eue", 2);
        map.put("nxi", 1);
        map.put("eto", 2);
        map.put("etr", 13);
        map.put("ets", 38);
        map.put("ett", 84);
        map.put("etu", 10);
        map.put("etw", 24);
        map.put("ety", 7);
        map.put("eve", 339);
        map.put("nvy", 1);
        map.put("eva", 10);
        map.put("wsm", 1);
        map.put("nwh", 5);
        map.put("evo", 11);
        map.put("evi", 38);
        map.put("nwa", 6);
        map.put("nvo", 7);
        map.put("eut", 3);
        map.put("eur", 5);
        map.put("eus", 20);
        map.put("eup", 1);
        map.put("nvi", 8);
        map.put("ewi", 1);
        map.put("ewh", 17);
        map.put("ewe", 10);
        map.put("ewd", 1);
        map.put("nve", 25);
        map.put("ewo", 2);
        map.put("nva", 2);
        map.put("ewl", 2);
        map.put("nul", 1);
        map.put("num", 26);
        map.put("nun", 1);
        map.put("nug", 2);
        map.put("nui", 8);
        map.put("nus", 11);
        map.put("nut", 29);
        map.put("nuu", 1);
        map.put("ewa", 10);
        map.put("nua", 7);
        map.put("epe", 10);
        map.put("epi", 25);
        map.put("nue", 34);
        map.put("nuf", 2);
        map.put("nuc", 2);
        map.put("eph", 9);
        map.put("nud", 1);
        map.put("nty", 20);
        map.put("epa", 22);
        map.put("eou", 11);
        map.put("nto", 187);
        map.put("eor", 10);
        map.put("ntu", 27);
        map.put("ntt", 1);
        map.put("nts", 64);
        map.put("ntr", 86);
        map.put("nti", 153);
        map.put("nth", 14);
        map.put("wye", 1);
        map.put("eol", 2);
        map.put("ntl", 66);
        map.put("eop", 59);
        map.put("eon", 19);
        map.put("nta", 56);
        map.put("ntb", 1);
        map.put("nte", 140);
        map.put("nsu", 6);
        map.put("nsw", 28);
        map.put("ept", 46);
        map.put("eps", 4);
        map.put("nsm", 2);
        map.put("nsp", 11);
        map.put("nso", 11);
        map.put("nst", 82);
        map.put("epl", 15);
        map.put("nsf", 2);
        map.put("nse", 46);
        map.put("nsh", 10);
        map.put("epp", 9);
        map.put("nsi", 81);
        map.put("epo", 8);
        map.put("epr", 16);
        map.put("nsl", 2);
        map.put("erk", 6);
        map.put("nsc", 5);
        map.put("erl", 21);
        map.put("eri", 132);
        map.put("nsa", 13);
        map.put("nsb", 4);
        map.put("erg", 18);
        map.put("erh", 17);
        map.put("ere", 660);
        map.put("erf", 43);
        map.put("www", 8);
        map.put("erc", 15);
        map.put("erd", 4);
        map.put("era", 82);
        map.put("erb", 3);
        map.put("nru", 2);
        map.put("nro", 1);
        map.put("equ", 32);
        map.put("nri", 2);
        map.put("wwe", 1);
        map.put("nre", 7);
        map.put("esk", 6);
        map.put("esm", 1);
        map.put("esh", 17);
        map.put("esi", 71);
        map.put("esb", 1);
        map.put("esc", 31);
        map.put("esd", 1);
        map.put("ese", 75);
        map.put("nqu", 17);
        map.put("ery", 225);
        map.put("erv", 49);
        map.put("eru", 2);
        map.put("erw", 14);
        map.put("err", 53);
        map.put("ert", 31);
        map.put("ers", 291);
        map.put("ern", 75);
        map.put("erm", 26);
        map.put("erp", 15);
        map.put("ero", 14);
        map.put("eki", 2);
        map.put("wly", 22);
        map.put("npl", 8);
        map.put("npo", 1);
        map.put("eks", 4);
        map.put("npr", 2);
        map.put("wml", 1);
        map.put("elb", 2);
        map.put("ela", 34);
        map.put("eld", 19);
        map.put("elc", 9);
        map.put("elf", 125);
        map.put("ele", 67);
        map.put("eli", 47);
        map.put("noc", 16);
        map.put("nod", 4);
        map.put("elg", 20);
        map.put("nob", 5);
        map.put("ell", 309);
        map.put("nol", 2);
        map.put("noi", 29);
        map.put("elo", 12);
        map.put("elp", 22);
        map.put("noo", 7);
        map.put("wne", 17);
        map.put("elv", 27);
        map.put("nom", 9);
        map.put("els", 48);
        map.put("non", 24);
        map.put("elt", 33);
        map.put("not", 291);
        map.put("wni", 3);
        map.put("ely", 135);
        map.put("nos", 8);
        map.put("nor", 34);
        map.put("nox", 3);
        map.put("now", 262);
        map.put("nov", 2);
        map.put("nou", 43);
        map.put("emb", 26);
        map.put("noz", 1);
        map.put("ema", 47);
        map.put("noy", 9);
        map.put("wns", 3);
        map.put("eme", 113);
        map.put("eml", 1);
        map.put("nne", 41);
        map.put("emn", 2);
        map.put("emo", 27);
        map.put("emi", 12);
        map.put("nna", 3);
        map.put("emu", 1);
        map.put("nnn", 13);
        map.put("nno", 30);
        map.put("emp", 204);
        map.put("nni", 41);
        map.put("ems", 40);
        map.put("emy", 2);
        map.put("wke", 2);
        map.put("nns", 4);
        map.put("enf", 1);
        map.put("ene", 116);
        map.put("enh", 1);
        map.put("eng", 38);
        map.put("nny", 5);
        map.put("enb", 1);
        map.put("ena", 8);
        map.put("end", 126);
        map.put("enc", 143);
        map.put("eno", 38);
        map.put("nme", 19);
        map.put("enp", 1);
        map.put("enn", 7);
        map.put("wkw", 7);
        map.put("enl", 57);
        map.put("eni", 35);
        map.put("enj", 25);
        map.put("enu", 8);
        map.put("env", 2);
        map.put("nmi", 1);
        map.put("ens", 99);
        map.put("ent", 651);
        map.put("enr", 4);
        map.put("wli", 4);
        map.put("wle", 15);
        map.put("enz", 1);
        map.put("eny", 1);
        map.put("eoi", 1);
        map.put("eog", 1);
        map.put("eof", 5);
        map.put("eod", 1);
        map.put("eoc", 1);
        map.put("egm", 1);
        map.put("nli", 8);
        map.put("ego", 5);
        map.put("ege", 10);
        map.put("egg", 1);
        map.put("egi", 23);
        map.put("nle", 6);
        map.put("nly", 135);
        map.put("eha", 11);
        map.put("egr", 10);
        map.put("egs", 5);
        map.put("egu", 4);
        map.put("nlu", 2);
        map.put("wre", 9);
        map.put("nke", 31);
        map.put("wri", 25);
        map.put("nkl", 7);
        map.put("nki", 37);
        map.put("eho", 4);
        map.put("ehe", 11);
        map.put("wra", 12);
        map.put("ehi", 20);
        map.put("nkw", 14);
        map.put("nky", 4);
        map.put("nkn", 2);
        map.put("nks", 15);
        map.put("wro", 18);
        map.put("nji", 16);
        map.put("eip", 1);
        map.put("wof", 1);
        map.put("eir", 97);
        map.put("eil", 9);
        map.put("wob", 1);
        map.put("ein", 67);
        map.put("wnw", 2);
        map.put("eig", 20);
        map.put("wou", 144);
        map.put("njy", 1);
        map.put("wow", 6);
        map.put("wor", 156);
        map.put("wom", 5);
        map.put("wol", 2);
        map.put("eiz", 4);
        map.put("woo", 5);
        map.put("won", 27);
        map.put("eit", 15);
        map.put("wok", 5);
        map.put("eiv", 3);
        map.put("njo", 9);
        map.put("nig", 25);
        map.put("nif", 12);
        map.put("nie", 11);
        map.put("nid", 3);
        map.put("nic", 85);
        map.put("nib", 3);
        map.put("nia", 13);
        map.put("eje", 1);
        map.put("niz", 11);
        map.put("eke", 2);
        map.put("niu", 1);
        map.put("niv", 56);
        map.put("nis", 30);
        map.put("nit", 60);
        map.put("niq", 3);
        map.put("nio", 8);
        map.put("nip", 1);
        map.put("nim", 4);
        map.put("nin", 123);
        map.put("nil", 3);
        map.put("ogs", 5);
        map.put("ogr", 46);
        map.put("ogu", 8);
        map.put("ogi", 8);
        map.put("ogh", 2);
        map.put("ogl", 1);
        map.put("ogo", 75);
        map.put("ogn", 10);
        map.put("oga", 4);
        map.put("oge", 20);
        map.put("ogg", 11);
        map.put("giz", 1);
        map.put("git", 4);
        map.put("gis", 8);
        map.put("gir", 10);
        map.put("oho", 3);
        map.put("ohn", 1);
        map.put("giv", 35);
        map.put("gil", 1);
        map.put("oha", 1);
        map.put("gin", 86);
        map.put("ohe", 2);
        map.put("gio", 2);
        map.put("gid", 3);
        map.put("gib", 1);
        map.put("ogy", 7);
        map.put("gic", 9);
        map.put("gig", 4);
        map.put("gia", 2);
        map.put("ois", 22);
        map.put("oin", 180);
        map.put("oik", 2);
        map.put("ghr", 2);
        map.put("ght", 444);
        map.put("oil", 6);
        map.put("ghn", 1);
        map.put("gho", 6);
        map.put("ghi", 3);
        map.put("wev", 9);
        map.put("oic", 69);
        map.put("oid", 26);
        map.put("ghl", 19);
        map.put("wes", 3);
        map.put("ghe", 15);
        map.put("wer", 209);
        map.put("oia", 2);
        map.put("wet", 5);
        map.put("ghh", 4);
        map.put("gha", 10);
        map.put("wen", 47);
        map.put("ghb", 1);
        map.put("wel", 132);
        map.put("wei", 9);
        map.put("ggy", 2);
        map.put("wed", 35);
        map.put("wee", 42);
        map.put("ggs", 1);
        map.put("ggr", 1);
        map.put("wea", 22);
        map.put("ggn", 1);
        map.put("ggl", 19);
        map.put("oje", 4);
        map.put("ggh", 4);
        map.put("ggi", 17);
        map.put("oja", 3);
        map.put("wds", 1);
        map.put("ggg", 14);
        map.put("gge", 29);
        map.put("wha", 307);
        map.put("oce", 13);
        map.put("och", 3);
        map.put("whe", 160);
        map.put("oci", 8);
        map.put("whh", 1);
        map.put("gfu", 2);
        map.put("ock", 65);
        map.put("whi", 242);
        map.put("oco", 1);
        map.put("ocr", 4);
        map.put("who", 142);
        map.put("obs", 16);
        map.put("obv", 6);
        map.put("oca", 7);
        map.put("occ", 22);
        map.put("odg", 1);
        map.put("ode", 43);
        map.put("gen", 72);
        map.put("geo", 8);
        map.put("get", 109);
        map.put("odl", 2);
        map.put("geu", 20);
        map.put("odi", 6);
        map.put("ger", 61);
        map.put("ges", 27);
        map.put("odo", 2);
        map.put("gew", 2);
        map.put("ods", 4);
        map.put("odr", 3);
        map.put("gea", 3);
        map.put("ocu", 7);
        map.put("oct", 1);
        map.put("wfu", 1);
        map.put("ged", 65);
        map.put("odd", 26);
        map.put("gem", 1);
        map.put("gel", 6);
        map.put("odb", 1);
        map.put("oda", 13);
        map.put("gdr", 1);
        map.put("oem", 5);
        map.put("oes", 37);
        map.put("oet", 12);
        map.put("wiv", 1);
        map.put("ody", 47);
        map.put("wir", 9);
        map.put("wis", 30);
        map.put("odu", 20);
        map.put("wit", 341);
        map.put("oed", 2);
        map.put("wig", 1);
        map.put("wif", 3);
        map.put("ofi", 2);
        map.put("wie", 5);
        map.put("wid", 13);
        map.put("wic", 3);
        map.put("wip", 5);
        map.put("oft", 25);
        map.put("win", 54);
        map.put("wim", 1);
        map.put("wil", 107);
        map.put("ofr", 1);
        map.put("ofo", 1);
        map.put("oev", 4);
        map.put("off", 97);
        map.put("ofe", 1);
        map.put("ofa", 4);
        map.put("why", 60);
        map.put("gaz", 8);
        map.put("gbl", 3);
        map.put("gab", 3);
        map.put("gad", 2);
        map.put("gaf", 4);
        map.put("gag", 2);
        map.put("gai", 131);
        map.put("gas", 16);
        map.put("gar", 32);
        map.put("gau", 1);
        map.put("gat", 17);
        map.put("gav", 22);
        map.put("gam", 9);
        map.put("gal", 126);
        map.put("gan", 47);
        map.put("gap", 8);
        map.put("oap", 1);
        map.put("oan", 5);
        map.put("oam", 1);
        map.put("oal", 1);
        map.put("oad", 22);
        map.put("oac", 6);
        map.put("oba", 64);
        map.put("obb", 11);
        map.put("oar", 18);
        map.put("oas", 6);
        map.put("oat", 37);
        map.put("obo", 32);
        map.put("obl", 34);
        map.put("obi", 3);
        map.put("obe", 11);
        map.put("nym", 2);
        map.put("nyl", 1);
        map.put("nyo", 15);
        map.put("nyt", 43);
        map.put("nyy", 1);
        map.put("nyw", 17);
        map.put("nzi", 1);
        map.put("wan", 82);
        map.put("wal", 56);
        map.put("wam", 2);
        map.put("wak", 9);
        map.put("way", 213);
        map.put("wav", 33);
        map.put("wat", 41);
        map.put("war", 108);
        map.put("was", 702);
        map.put("wag", 1);
        map.put("waf", 1);
        map.put("wai", 27);
        map.put("wad", 1);
        map.put("oyi", 4);
        map.put("oye", 8);
        map.put("oyd", 2);
        map.put("oya", 1);
        map.put("oxy", 1);
        map.put("oxi", 6);
        map.put("fyi", 3);
        map.put("owy", 1);
        map.put("vro", 13);
        map.put("ows", 17);
        map.put("vra", 2);
        map.put("owl", 47);
        map.put("own", 204);
        map.put("owo", 1);
        map.put("owh", 4);
        map.put("owi", 11);
        map.put("ozz", 1);
        map.put("fur", 40);
        map.put("ozo", 3);
        map.put("fus", 7);
        map.put("fut", 4);
        map.put("oze", 25);
        map.put("fwa", 1);
        map.put("oys", 2);
        map.put("fte", 102);
        map.put("oty", 2);
        map.put("ftl", 1);
        map.put("oud", 13);
        map.put("oue", 1);
        map.put("oub", 19);
        map.put("ouc", 25);
        map.put("fth", 1);
        map.put("fti", 2);
        map.put("otl", 2);
        map.put("oti", 50);
        map.put("oth", 213);
        map.put("ote", 43);
        map.put("ott", 21);
        map.put("vun", 1);
        map.put("ots", 15);
        map.put("otr", 3);
        map.put("vul", 1);
        map.put("oto", 7);
        map.put("otn", 1);
        map.put("ost", 113);
        map.put("ota", 20);
        map.put("otb", 1);
        map.put("ful", 83);
        map.put("fum", 1);
        map.put("otc", 2);
        map.put("fun", 22);
        map.put("osi", 32);
        map.put("fts", 2);
        map.put("ose", 109);
        map.put("osp", 11);
        map.put("oss", 114);
        map.put("osm", 3);
        map.put("fty", 8);
        map.put("oso", 7);
        map.put("fra", 33);
        map.put("owa", 24);
        map.put("fre", 24);
        map.put("owd", 10);
        map.put("owe", 81);
        map.put("fri", 29);
        map.put("ovi", 12);
        map.put("ovo", 5);
        map.put("ove", 185);
        map.put("oug", 341);
        map.put("fro", 190);
        map.put("oul", 277);
        map.put("fru", 4);
        map.put("oun", 297);
        map.put("oup", 24);
        map.put("ous", 224);
        map.put("fry", 2);
        map.put("our", 260);
        map.put("out", 495);
        map.put("fou", 54);
        map.put("opm", 1);
        map.put("opo", 5);
        map.put("fox", 1);
        map.put("via", 1);
        map.put("opp", 44);
        map.put("opi", 4);
        map.put("for", 863);
        map.put("opl", 58);
        map.put("ope", 89);
        map.put("fon", 13);
        map.put("foo", 33);
        map.put("oph", 20);
        map.put("opa", 3);
        map.put("fol", 25);
        map.put("vio", 22);
        map.put("vir", 8);
        map.put("opy", 14);
        map.put("vil", 24);
        map.put("vim", 1);
        map.put("vin", 111);
        map.put("vig", 3);
        map.put("opu", 11);
        map.put("vic", 24);
        map.put("opr", 4);
        map.put("vid", 5);
        map.put("opt", 2);
        map.put("vie", 8);
        map.put("ops", 6);
        map.put("oon", 44);
        map.put("ooo", 2);
        map.put("ool", 19);
        map.put("oom", 53);
        map.put("ooj", 3);
        map.put("ook", 283);
        map.put("ooh", 1);
        map.put("oof", 8);
        map.put("oog", 1);
        map.put("ood", 122);
        map.put("ooe", 1);
        map.put("viv", 14);
        map.put("oob", 1);
        map.put("vit", 14);
        map.put("vis", 32);
        map.put("ooz", 3);
        map.put("oov", 4);
        map.put("oot", 34);
        map.put("oos", 6);
        map.put("oor", 58);
        map.put("oop", 10);
        map.put("ork", 58);
        map.put("orl", 25);
        map.put("orm", 80);
        map.put("orn", 36);
        map.put("oro", 11);
        map.put("orp", 13);
        map.put("orr", 60);
        map.put("orc", 8);
        map.put("ord", 418);
        map.put("ore", 162);
        map.put("orf", 1);
        map.put("org", 16);
        map.put("ori", 37);
        map.put("osa", 4);
        map.put("osc", 1);
        map.put("ort", 125);
        map.put("ors", 39);
        map.put("oru", 3);
        map.put("orw", 24);
        map.put("ory", 55);
        map.put("fod", 1);
        map.put("foc", 4);
        map.put("vlo", 1);
        map.put("foa", 1);
        map.put("orb", 10);
        map.put("ora", 31);
        map.put("foe", 1);
        map.put("oqu", 1);
        map.put("ola", 5);
        map.put("old", 142);
        map.put("oli", 54);
        map.put("oll", 86);
        map.put("olf", 1);
        map.put("ole", 76);
        map.put("ols", 14);
        map.put("olt", 6);
        map.put("olo", 33);
        map.put("olp", 6);
        map.put("oly", 1);
        map.put("fle", 31);
        map.put("olu", 23);
        map.put("olv", 15);
        map.put("fla", 49);
        map.put("fli", 15);
        map.put("flu", 8);
        map.put("oki", 35);
        map.put("oke", 112);
        map.put("flo", 25);
        map.put("oks", 15);
        map.put("fly", 14);
        map.put("oko", 1);
        map.put("okz", 2);
        map.put("fid", 3);
        map.put("fic", 53);
        map.put("onb", 6);
        map.put("fif", 17);
        map.put("fie", 21);
        map.put("ona", 50);
        map.put("ond", 120);
        map.put("onc", 45);
        map.put("fig", 21);
        map.put("onf", 8);
        map.put("one", 389);
        map.put("fil", 15);
        map.put("onh", 1);
        map.put("ong", 103);
        map.put("fin", 146);
        map.put("voc", 2);
        map.put("vod", 2);
        map.put("oni", 47);
        map.put("onl", 76);
        map.put("onk", 9);
        map.put("fir", 72);
        map.put("onn", 7);
        map.put("vog", 81);
        map.put("onm", 1);
        map.put("fis", 22);
        map.put("ono", 14);
        map.put("fit", 16);
        map.put("voi", 69);
        map.put("onq", 10);
        map.put("vol", 20);
        map.put("fiv", 45);
        map.put("vok", 1);
        map.put("ons", 168);
        map.put("ont", 126);
        map.put("fix", 3);
        map.put("onu", 1);
        map.put("onv", 18);
        map.put("voo", 7);
        map.put("vot", 1);
        map.put("ony", 8);
        map.put("vou", 27);
        map.put("oma", 12);
        map.put("ome", 389);
        map.put("omb", 6);
        map.put("fjo", 4);
        map.put("omi", 28);
        map.put("omf", 18);
        map.put("omm", 24);
        map.put("omp", 171);
        map.put("omn", 4);
        map.put("omo", 2);
        map.put("oms", 9);
        map.put("omy", 3);
        map.put("fka", 1);
        map.put("vex", 1);
        map.put("vey", 2);
        map.put("ver", 584);
        map.put("ves", 52);
        map.put("vei", 3);
        map.put("veh", 1);
        map.put("veg", 2);
        map.put("ven", 141);
        map.put("vem", 14);
        map.put("vel", 57);
        map.put("veb", 1);
        map.put("vea", 6);
        map.put("vee", 2);
        map.put("ved", 85);
        map.put("vec", 2);
        map.put("dba", 1);
        map.put("lce", 1);
        map.put("dbi", 1);
        map.put("lch", 2);
        map.put("dbo", 7);
        map.put("lcu", 10);
        map.put("lco", 10);
        map.put("dby", 1);
        map.put("dac", 3);
        map.put("dab", 3);
        map.put("ldf", 2);
        map.put("dal", 3);
        map.put("dai", 2);
        map.put("lde", 24);
        map.put("daf", 1);
        map.put("dat", 20);
        map.put("ldo", 17);
        map.put("ldn", 45);
        map.put("das", 2);
        map.put("dar", 37);
        map.put("ldl", 14);
        map.put("dap", 1);
        map.put("ldi", 18);
        map.put("dan", 20);
        map.put("dam", 30);
        map.put("daz", 1);
        map.put("day", 77);
        map.put("lds", 5);
        map.put("ldr", 2);
        map.put("daw", 4);
        map.put("dau", 1);
        map.put("val", 23);
        map.put("van", 11);
        map.put("vap", 6);
        map.put("dde", 97);
        map.put("var", 12);
        map.put("vat", 11);
        map.put("ddi", 21);
        map.put("vas", 12);
        map.put("ddl", 14);
        map.put("lab", 8);
        map.put("lac", 86);
        map.put("lad", 14);
        map.put("dds", 1);
        map.put("ddr", 8);
        map.put("lag", 12);
        map.put("lai", 46);
        map.put("lak", 1);
        map.put("ddy", 1);
        map.put("lan", 218);
        map.put("lam", 10);
        map.put("lap", 14);
        map.put("lar", 137);
        map.put("lat", 111);
        map.put("las", 101);
        map.put("dca", 9);
        map.put("law", 5);
        map.put("lax", 99);
        map.put("lau", 22);
        map.put("lav", 2);
        map.put("lay", 41);
        map.put("laz", 12);
        map.put("lbe", 1);
        map.put("vab", 1);
        map.put("lbo", 3);
        map.put("vac", 3);
        map.put("vad", 1);
        map.put("lbu", 4);
        map.put("vai", 3);
        map.put("vag", 9);
        map.put("cup", 14);
        map.put("cun", 1);
        map.put("cuo", 4);
        map.put("cul", 66);
        map.put("cum", 9);
        map.put("cui", 10);
        map.put("cue", 6);
        map.put("cub", 5);
        map.put("ctu", 53);
        map.put("cts", 12);
        map.put("kul", 2);
        map.put("ctr", 18);
        map.put("kwi", 14);
        map.put("cto", 23);
        map.put("cti", 213);
        map.put("ctl", 47);
        map.put("cte", 47);
        map.put("ctf", 2);
        map.put("kwa", 15);
        map.put("cta", 12);
        map.put("cst", 1);
        map.put("csp", 1);
        map.put("cwo", 1);
        map.put("kta", 1);
        map.put("kth", 12);
        map.put("kst", 2);
        map.put("cus", 23);
        map.put("cur", 51);
        map.put("cuu", 2);
        map.put("cut", 19);
        map.put("cyl", 1);
        map.put("uzz", 9);
        map.put("cyt", 1);
        map.put("cyn", 1);
        map.put("cyb", 9);
        map.put("cyc", 6);
        map.put("uys", 19);
        map.put("uxu", 2);
        map.put("uxw", 1);
        map.put("cks", 11);
        map.put("ckp", 1);
        map.put("lpl", 1);
        map.put("ckw", 8);
        map.put("ckt", 1);
        map.put("uum", 3);
        map.put("lpf", 2);
        map.put("cki", 20);
        map.put("lpe", 5);
        map.put("cko", 8);
        map.put("ckn", 11);
        map.put("ckm", 1);
        map.put("lpi", 2);
        map.put("ckl", 13);
        map.put("lph", 15);
        map.put("cla", 27);
        map.put("cle", 67);
        map.put("uur", 3);
        map.put("lpt", 1);
        map.put("cky", 13);
        map.put("uuu", 8);
        map.put("lol", 5);
        map.put("lon", 87);
        map.put("lop", 15);
        map.put("clu", 10);
        map.put("loo", 224);
        map.put("lor", 8);
        map.put("lod", 6);
        map.put("loc", 26);
        map.put("cli", 27);
        map.put("uve", 2);
        map.put("log", 25);
        map.put("clo", 38);
        map.put("loi", 3);
        map.put("cmi", 1);
        map.put("los", 56);
        map.put("lot", 43);
        map.put("lou", 40);
        map.put("lov", 8);
        map.put("low", 107);
        map.put("loy", 6);
        map.put("usl", 58);
        map.put("ush", 33);
        map.put("usi", 47);
        map.put("use", 224);
        map.put("usb", 1);
        map.put("usc", 8);
        map.put("usa", 32);
        map.put("loa", 16);
        map.put("lob", 7);
        map.put("usy", 10);
        map.put("usu", 11);
        map.put("ust", 217);
        map.put("uss", 3);
        map.put("usp", 13);
        map.put("lnu", 1);
        map.put("uso", 2);
        map.put("lns", 5);
        map.put("usn", 1);
        map.put("utl", 3);
        map.put("lmo", 18);
        map.put("utn", 1);
        map.put("uth", 31);
        map.put("lmi", 3);
        map.put("lml", 2);
        map.put("uti", 33);
        map.put("utc", 3);
        map.put("ute", 189);
        map.put("utf", 1);
        map.put("lma", 2);
        map.put("uta", 3);
        map.put("coh", 5);
        map.put("coi", 13);
        map.put("cod", 4);
        map.put("cof", 4);
        map.put("cog", 10);
        map.put("utt", 45);
        map.put("coa", 12);
        map.put("uts", 21);
        map.put("utu", 4);
        map.put("coc", 5);
        map.put("uto", 4);
        map.put("utr", 8);
        map.put("con", 291);
        map.put("coo", 15);
        map.put("col", 56);
        map.put("lth", 7);
        map.put("lti", 23);
        map.put("com", 292);
        map.put("cor", 70);
        map.put("lto", 1);
        map.put("cos", 5);
        map.put("cop", 31);
        map.put("ltr", 5);
        map.put("cov", 28);
        map.put("cow", 1);
        map.put("lts", 7);
        map.put("cot", 1);
        map.put("cou", 199);
        map.put("ltv", 2);
        map.put("ltu", 4);
        map.put("ltz", 7);
        map.put("lty", 6);
        map.put("lud", 8);
        map.put("luc", 13);
        map.put("lub", 2);
        map.put("lug", 9);
        map.put("lue", 17);
        map.put("lsh", 3);
        map.put("lsi", 1);
        map.put("urb", 5);
        map.put("ura", 39);
        map.put("urd", 6);
        map.put("urc", 6);
        map.put("lso", 32);
        map.put("urf", 16);
        map.put("ure", 146);
        map.put("urg", 22);
        map.put("uri", 52);
        map.put("lst", 16);
        map.put("url", 11);
        map.put("urk", 2);
        map.put("urm", 3);
        map.put("urn", 69);
        map.put("uro", 4);
        map.put("urp", 31);
        map.put("urr", 36);
        map.put("urs", 84);
        map.put("urt", 26);
        map.put("uru", 2);
        map.put("lta", 12);
        map.put("urv", 17);
        map.put("ury", 8);
        map.put("lte", 9);
        map.put("cqu", 3);
        map.put("lri", 21);
        map.put("cre", 115);
        map.put("cra", 69);
        map.put("lse", 20);
        map.put("crl", 1);
        map.put("uot", 4);
        map.put("uou", 7);
        map.put("cri", 39);
        map.put("uor", 3);
        map.put("cru", 10);
        map.put("cro", 75);
        map.put("uph", 5);
        map.put("upi", 18);
        map.put("upf", 1);
        map.put("cry", 4);
        map.put("upe", 12);
        map.put("upo", 6);
        map.put("upp", 28);
        map.put("upl", 19);
        map.put("upw", 3);
        map.put("upy", 1);
        map.put("lre", 14);
        map.put("ups", 10);
        map.put("upt", 10);
        map.put("ump", 32);
        map.put("ums", 6);
        map.put("umu", 2);
        map.put("umi", 6);
        map.put("ccr", 1);
        map.put("lho", 1);
        map.put("umm", 15);
        map.put("ccu", 17);
        map.put("umo", 3);
        map.put("umn", 4);
        map.put("cci", 4);
        map.put("uma", 28);
        map.put("umb", 42);
        map.put("ume", 34);
        map.put("cco", 14);
        map.put("cca", 9);
        map.put("ccc", 1);
        map.put("uly", 4);
        map.put("cce", 19);
        map.put("unt", 67);
        map.put("uns", 14);
        map.put("unr", 8);
        map.put("cea", 9);
        map.put("unw", 1);
        map.put("unv", 2);
        map.put("unu", 1);
        map.put("unl", 11);
        map.put("unk", 35);
        map.put("uni", 87);
        map.put("unp", 8);
        map.put("unn", 40);
        map.put("lgo", 3);
        map.put("unm", 1);
        map.put("unc", 66);
        map.put("und", 326);
        map.put("lge", 23);
        map.put("una", 17);
        map.put("unb", 5);
        map.put("ung", 49);
        map.put("unh", 8);
        map.put("cdo", 3);
        map.put("une", 11);
        map.put("unf", 10);
        map.put("lga", 1);
        map.put("lfw", 1);
        map.put("lfr", 3);
        map.put("lfu", 1);
        map.put("lfo", 1);
        map.put("cer", 46);
        map.put("ces", 89);
        map.put("cen", 56);
        map.put("cep", 28);
        map.put("uke", 1);
        map.put("cem", 10);
        map.put("cel", 14);
        map.put("cef", 1);
        map.put("cei", 11);
        map.put("cec", 3);
        map.put("ley", 5);
        map.put("cee", 2);
        map.put("ced", 53);
        map.put("lew", 12);
        map.put("lex", 3);
        map.put("ult", 57);
        map.put("uls", 1);
        map.put("lev", 19);
        map.put("les", 148);
        map.put("let", 68);
        map.put("ulp", 2);
        map.put("ler", 16);
        map.put("ulo", 8);
        map.put("leo", 1);
        map.put("lep", 15);
        map.put("ulm", 2);
        map.put("ull", 74);
        map.put("lem", 34);
        map.put("ulk", 4);
        map.put("len", 76);
        map.put("uli", 6);
        map.put("lel", 1);
        map.put("ulg", 3);
        map.put("ule", 8);
        map.put("leg", 20);
        map.put("ulc", 1);
        map.put("lef", 31);
        map.put("lee", 27);
        map.put("uld", 272);
        map.put("led", 245);
        map.put("ula", 70);
        map.put("ulb", 1);
        map.put("lec", 44);
        map.put("leb", 29);
        map.put("lea", 180);
        map.put("uid", 60);
        map.put("uie", 31);
        map.put("lls", 22);
        map.put("llu", 15);
        map.put("uil", 39);
        map.put("lly", 236);
        map.put("uin", 14);
        map.put("uio", 1);
        map.put("chb", 1);
        map.put("uip", 6);
        map.put("cha", 108);
        map.put("uir", 16);
        map.put("uis", 11);
        map.put("lla", 35);
        map.put("llb", 1);
        map.put("lld", 17);
        map.put("lle", 125);
        map.put("lli", 209);
        map.put("llm", 1);
        map.put("uic", 20);
        map.put("llo", 84);
        map.put("chw", 14);
        map.put("chu", 8);
        map.put("cia", 30);
        map.put("lky", 2);
        map.put("cie", 28);
        map.put("cid", 40);
        map.put("cic", 1);
        map.put("cib", 1);
        map.put("chg", 9);
        map.put("chh", 45);
        map.put("uiv", 5);
        map.put("che", 112);
        map.put("uit", 73);
        map.put("lke", 19);
        map.put("uiz", 1);
        map.put("chi", 53);
        map.put("lki", 16);
        map.put("cho", 25);
        map.put("lkh", 1);
        map.put("chn", 5);
        map.put("cht", 4);
        map.put("chr", 6);
        map.put("ugg", 37);
        map.put("ugh", 359);
        map.put("ugb", 3);
        map.put("civ", 7);
        map.put("uge", 25);
        map.put("ugn", 1);
        map.put("ugl", 12);
        map.put("cil", 14);
        map.put("cim", 2);
        map.put("cif", 1);
        map.put("cir", 20);
        map.put("cis", 15);
        map.put("cit", 38);
        map.put("uga", 1);
        map.put("cin", 15);
        map.put("cio", 15);
        map.put("cip", 9);
        map.put("lit", 137);
        map.put("lis", 72);
        map.put("liq", 4);
        map.put("uhh", 1);
        map.put("lip", 17);
        map.put("lio", 36);
        map.put("lin", 210);
        map.put("lim", 18);
        map.put("ckg", 1);
        map.put("liz", 31);
        map.put("cke", 92);
        map.put("liw", 2);
        map.put("ckb", 3);
        map.put("cka", 1);
        map.put("liv", 22);
        map.put("lic", 51);
        map.put("lid", 29);
        map.put("lia", 99);
        map.put("ugv", 1);
        map.put("lib", 4);
        map.put("ugs", 1);
        map.put("lik", 117);
        map.put("lil", 3);
        map.put("lig", 128);
        map.put("lie", 66);
        map.put("lif", 84);
        map.put("uco", 2);
        map.put("ebb", 1);
        map.put("ucr", 3);
        map.put("eba", 2);
        map.put("uct", 39);
        map.put("ebe", 2);
        map.put("ebi", 1);
        map.put("ebl", 32);
        map.put("ebo", 17);
        map.put("udd", 77);
        map.put("ebr", 36);
        map.put("ude", 13);
        map.put("ebt", 2);
        map.put("ebu", 6);
        map.put("udg", 10);
        map.put("udi", 11);
        map.put("eby", 1);
        map.put("ubs", 7);
        map.put("eac", 54);
        map.put("ubt", 23);
        map.put("ubr", 2);
        map.put("eag", 8);
        map.put("eaf", 7);
        map.put("ead", 173);
        map.put("eak", 44);
        map.put("eah", 43);
        map.put("ean", 102);
        map.put("eal", 114);
        map.put("eam", 38);
        map.put("uce", 18);
        map.put("ear", 383);
        map.put("eas", 143);
        map.put("ucc", 9);
        map.put("eap", 19);
        map.put("uci", 1);
        map.put("eav", 39);
        map.put("uch", 100);
        map.put("eaw", 1);
        map.put("eat", 198);
        map.put("eau", 13);
        map.put("ucl", 2);
        map.put("uck", 47);
        map.put("uet", 1);
        map.put("ueu", 2);
        map.put("uep", 1);
        map.put("uer", 1);
        map.put("ues", 40);
        map.put("mac", 14);
        map.put("mab", 6);
        map.put("mah", 2);
        map.put("uff", 18);
        map.put("mai", 16);
        map.put("maj", 26);
        map.put("mak", 48);
        map.put("mad", 49);
        map.put("ufa", 2);
        map.put("mae", 1);
        map.put("mag", 64);
        map.put("map", 2);
        map.put("mar", 104);
        map.put("mas", 20);
        map.put("mal", 82);
        map.put("man", 242);
        map.put("maz", 19);
        map.put("may", 24);
        map.put("uds", 5);
        map.put("max", 3);
        map.put("mau", 1);
        map.put("mat", 94);
        map.put("mba", 9);
        map.put("udy", 5);
        map.put("mbl", 19);
        map.put("mbi", 10);
        map.put("uee", 3);
        map.put("ued", 41);
        map.put("uea", 1);
        map.put("mbe", 48);
        map.put("mbs", 2);
        map.put("uen", 8);
        map.put("mbr", 2);
        map.put("uel", 6);
        map.put("mbo", 2);
        map.put("efi", 18);
        map.put("efl", 13);
        map.put("efo", 60);
        map.put("mcd", 3);
        map.put("mbu", 1);
        map.put("efa", 2);
        map.put("efe", 47);
        map.put("eff", 28);
        map.put("mco", 1);
        map.put("ega", 52);
        map.put("efr", 1);
        map.put("eft", 31);
        map.put("efu", 19);
        map.put("mcm", 1);
        map.put("eek", 12);
        map.put("eei", 6);
        map.put("een", 207);
        map.put("eeo", 1);
        map.put("eel", 51);
        map.put("eem", 64);
        map.put("eeb", 34);
        map.put("eec", 9);
        map.put("eea", 1);
        map.put("eef", 1);
        map.put("eed", 63);
        map.put("eee", 2);
        map.put("eez", 7);
        map.put("ees", 14);
        map.put("eer", 31);
        map.put("eep", 109);
        map.put("eew", 2);
        map.put("eet", 65);
        map.put("med", 130);
        map.put("edl", 15);
        map.put("mee", 8);
        map.put("edn", 2);
        map.put("meg", 10);
        map.put("edg", 10);
        map.put("mea", 87);
        map.put("uat", 16);
        map.put("uaw", 12);
        map.put("meb", 12);
        map.put("edi", 45);
        map.put("mec", 2);
        map.put("edd", 13);
        map.put("ede", 10);
        map.put("uar", 42);
        map.put("ual", 82);
        map.put("eda", 1);
        map.put("uan", 2);
        map.put("edb", 2);
        map.put("ubi", 4);
        map.put("met", 103);
        map.put("ubj", 7);
        map.put("mew", 16);
        map.put("ubl", 43);
        map.put("mev", 1);
        map.put("ube", 1);
        map.put("mes", 40);
        map.put("edy", 5);
        map.put("mer", 50);
        map.put("mem", 13);
        map.put("edt", 1);
        map.put("mel", 14);
        map.put("ubb", 16);
        map.put("eds", 7);
        map.put("meo", 17);
        map.put("ubd", 1);
        map.put("men", 261);
        map.put("edu", 5);
        map.put("edo", 2);
        map.put("meh", 4);
        map.put("edr", 2);
        map.put("ecl", 4);
        map.put("eck", 26);
        map.put("ech", 19);
        map.put("eci", 50);
        map.put("ece", 27);
        map.put("ecc", 3);
        map.put("eca", 91);
        map.put("uak", 1);
        map.put("uai", 1);
        map.put("ecy", 1);
        map.put("uag", 2);
        map.put("uad", 2);
        map.put("ecu", 12);
        map.put("uac", 1);
        map.put("ect", 305);
        map.put("mfo", 18);
        map.put("ecs", 3);
        map.put("ecr", 13);
        map.put("eco", 117);
        map.put("lva", 1);
        map.put("dyi", 2);
        map.put("lve", 49);
        map.put("dym", 1);
        map.put("lup", 2);
        map.put("lun", 46);
        map.put("lum", 26);
        map.put("lut", 21);
        map.put("lus", 12);
        map.put("lur", 16);
        map.put("lux", 2);
        map.put("lwa", 28);
        map.put("tyi", 1);
        map.put("tyl", 11);
        map.put("typ", 7);
        map.put("tyr", 1);
        map.put("dwi", 1);
        map.put("dwh", 1);
        map.put("dwa", 1);
        map.put("dvi", 2);
        map.put("dve", 5);
        map.put("lyi", 30);
        map.put("dur", 4);
        map.put("dus", 17);
        map.put("dva", 3);
        map.put("twa", 1);
        map.put("tvo", 2);
        map.put("lyp", 1);
        map.put("lyn", 2);
        map.put("lys", 8);
        map.put("lyt", 1);
        map.put("tur", 153);
        map.put("tus", 1);
        map.put("tut", 4);
        map.put("tui", 2);
        map.put("tul", 2);
        map.put("tun", 26);
        map.put("tum", 2);
        map.put("tup", 14);
        map.put("tuo", 3);
        map.put("tub", 3);
        map.put("tua", 57);
        map.put("tud", 17);
        map.put("tuc", 14);
        map.put("tuf", 8);
        map.put("two", 92);
        map.put("twi", 11);
        map.put("dyw", 1);
        map.put("twe", 38);
        map.put("dor", 8);
        map.put("mpi", 15);
        map.put("mph", 129);
        map.put("doo", 39);
        map.put("don", 127);
        map.put("mpe", 35);
        map.put("dom", 11);
        map.put("dol", 15);
        map.put("doz", 19);
        map.put("mpr", 51);
        map.put("dow", 139);
        map.put("mpo", 50);
        map.put("dou", 28);
        map.put("mpl", 75);
        map.put("dot", 2);
        map.put("dos", 1);
        map.put("mpy", 1);
        map.put("mpu", 100);
        map.put("mps", 4);
        map.put("mpt", 66);
        map.put("dpi", 1);
        map.put("mog", 17);
        map.put("moi", 1);
        map.put("tre", 70);
        map.put("mob", 2);
        map.put("tra", 169);
        map.put("mod", 9);
        map.put("moo", 12);
        map.put("mon", 45);
        map.put("mop", 1);
        map.put("mok", 6);
        map.put("mom", 78);
        map.put("mol", 14);
        map.put("tri", 161);
        map.put("mov", 35);
        map.put("tru", 76);
        map.put("mor", 92);
        map.put("tro", 86);
        map.put("mos", 90);
        map.put("mot", 26);
        map.put("mou", 42);
        map.put("mpa", 28);
        map.put("try", 63);
        map.put("dmi", 6);
        map.put("tse", 34);
        map.put("dmo", 2);
        map.put("tsi", 10);
        map.put("tso", 2);
        map.put("dne", 10);
        map.put("mse", 80);
        map.put("tta", 11);
        map.put("tte", 165);
        map.put("tti", 38);
        map.put("ttl", 79);
        map.put("tto", 19);
        map.put("ttp", 5);
        map.put("ttr", 9);
        map.put("doc", 5);
        map.put("tty", 20);
        map.put("doe", 30);
        map.put("dog", 7);
        map.put("doi", 30);
        map.put("tme", 6);
        map.put("tma", 4);
        map.put("dsu", 1);
        map.put("tly", 205);
        map.put("dso", 1);
        map.put("mth", 1);
        map.put("dsp", 1);
        map.put("mug", 3);
        map.put("muf", 1);
        map.put("mud", 11);
        map.put("muc", 53);
        map.put("dth", 2);
        map.put("tmo", 7);
        map.put("mst", 3);
        map.put("tni", 8);
        map.put("tne", 4);
        map.put("dun", 6);
        map.put("dum", 9);
        map.put("dul", 18);
        map.put("due", 2);
        map.put("tno", 1);
        map.put("dua", 2);
        map.put("duc", 24);
        map.put("tod", 13);
        map.put("toc", 1);
        map.put("toi", 1);
        map.put("tog", 16);
        map.put("toa", 1);
        map.put("dri", 58);
        map.put("tou", 22);
        map.put("tos", 5);
        map.put("tot", 18);
        map.put("toy", 2);
        map.put("tow", 37);
        map.put("tox", 1);
        map.put("tom", 31);
        map.put("dra", 18);
        map.put("ton", 55);
        map.put("tok", 1);
        map.put("tol", 23);
        map.put("dre", 57);
        map.put("tor", 99);
        map.put("too", 79);
        map.put("top", 61);
        map.put("mur", 8);
        map.put("mus", 48);
        map.put("dry", 3);
        map.put("mut", 16);
        map.put("dro", 25);
        map.put("mul", 16);
        map.put("mum", 1);
        map.put("mun", 8);
        map.put("dru", 7);
        map.put("dsc", 3);
        map.put("mho", 2);
        map.put("til", 75);
        map.put("tif", 25);
        map.put("tie", 25);
        map.put("tig", 15);
        map.put("tir", 31);
        map.put("tit", 115);
        map.put("tis", 19);
        map.put("tin", 257);
        map.put("tim", 135);
        map.put("tip", 8);
        map.put("tio", 374);
        map.put("thy", 7);
        map.put("dgi", 1);
        map.put("tht", 2);
        map.put("thu", 378);
        map.put("thw", 1);
        map.put("dge", 45);
        map.put("tia", 24);
        map.put("tib", 29);
        map.put("tic", 177);
        map.put("tid", 5);
        map.put("dic", 21);
        map.put("did", 119);
        map.put("dia", 18);
        map.put("dib", 4);
        map.put("tiz", 3);
        map.put("tiv", 45);
        map.put("der", 151);
        map.put("des", 101);
        map.put("det", 16);
        map.put("dev", 18);
        map.put("dew", 2);
        map.put("dex", 2);
        map.put("deb", 5);
        map.put("dea", 68);
        map.put("ded", 114);
        map.put("dec", 35);
        map.put("def", 24);
        map.put("dee", 68);
        map.put("deg", 7);
        map.put("dej", 1);
        map.put("del", 28);
        map.put("den", 205);
        map.put("dem", 36);
        map.put("dep", 21);
        map.put("deo", 3);
        map.put("min", 159);
        map.put("dfu", 2);
        map.put("tli", 14);
        map.put("mil", 94);
        map.put("mim", 3);
        map.put("mir", 9);
        map.put("mis", 51);
        map.put("mit", 17);
        map.put("mix", 6);
        map.put("mic", 44);
        map.put("mig", 22);
        map.put("mie", 1);
        map.put("tla", 2);
        map.put("mid", 12);
        map.put("dfo", 2);
        map.put("tle", 205);
        map.put("tem", 56);
        map.put("dle", 29);
        map.put("ten", 130);
        map.put("teo", 1);
        map.put("tep", 11);
        map.put("dla", 1);
        map.put("tei", 1);
        map.put("tel", 163);
        map.put("mly", 17);
        map.put("tee", 35);
        map.put("tef", 2);
        map.put("teg", 3);
        map.put("tea", 35);
        map.put("teb", 4);
        map.put("tec", 14);
        map.put("ted", 370);
        map.put("mln", 5);
        map.put("mli", 1);
        map.put("mle", 9);
        map.put("mla", 1);
        map.put("tfo", 3);
        map.put("dly", 62);
        map.put("tfa", 27);
        map.put("tex", 2);
        map.put("tew", 4);
        map.put("dlo", 1);
        map.put("tev", 11);
        map.put("tet", 7);
        map.put("tes", 66);
        map.put("ter", 583);
        map.put("dli", 4);
        map.put("dja", 1);
        map.put("moa", 2);
        map.put("div", 8);
        map.put("diu", 4);
        map.put("diz", 3);
        map.put("mni", 4);
        map.put("dim", 18);
        map.put("din", 127);
        map.put("dio", 32);
        map.put("dip", 1);
        map.put("mnl", 1);
        map.put("dir", 19);
        map.put("dis", 98);
        map.put("dit", 26);
        map.put("mna", 1);
        map.put("die", 41);
        map.put("dif", 30);
        map.put("dig", 7);
        map.put("tfu", 10);
        map.put("dil", 4);
        map.put("tho", 263);
        map.put("mmy", 1);
        map.put("thl", 5);
        map.put("thm", 19);
        map.put("thr", 182);
        map.put("dke", 1);
        map.put("ths", 14);
        map.put("thp", 2);
        map.put("thq", 1);
        map.put("thd", 1);
        map.put("the", 3955);
        map.put("mmw", 1);
        map.put("mmu", 7);
        map.put("thi", 733);
        map.put("mmi", 15);
        map.put("mmo", 6);
        map.put("dju", 2);
        map.put("thb", 1);
        map.put("tha", 716);
        map.put("mmm", 39);
        map.put("mma", 6);
        map.put("mme", 39);
    }

    private final MarkovMatrix3D markovMatrix = new MarkovMatrix3D(map);

    public PasswordGenerator3D() {
    }

    public PasswordGenerator3D(long randSeed) {
        super(randSeed);
    }

    protected char[] generateRandomChars(int length) {
        char[] chars = new char[length];
        int c1 = -1;
        int c2 = -1;

        for (int i = 0; i < length; i++) {
            int rowTotal = markovMatrix.getRowTotal(c1, c2);
            if (rowTotal == 0) {
                c1 = -1;
                rowTotal = markovMatrix.getRowTotal(c1, c2);
            }
            if (rowTotal == 0) {
                c2 = -1;
                rowTotal = markovMatrix.getRowTotal(c1, c2);
            }
            int ind = random.nextInt(rowTotal);
            for (int c = 0; c < 26; c++) {
                int prob = markovMatrix.getProbability(c1, c2, c);
                if (ind < prob) {
                    chars[i] = (char) (c + 'a');
                    c1 = c2;
                    c2 = c;
                    break;
                }
                ind -= prob;
            }

        }

        return chars;
    }

}
